/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2002-2017 Oracle and/or its affiliates. All rights reserved. * * The contents of this file are subject to the terms of either the GNU * General Public License Version 2 only ("GPL") or the Common Development * and Distribution License("CDDL") (collectively, the "License"). You * may not use this file except in compliance with the License. You can * obtain a copy of the License at * https://oss.oracle.com/licenses/CDDL+GPL-1.1 * or LICENSE.txt. See the License for the specific * language governing permissions and limitations under the License. * * When distributing the software, include this License Header Notice in each * file and include the License file at LICENSE.txt. * * GPL Classpath Exception: * Oracle designates this particular file as subject to the "Classpath" * exception as provided by Oracle in the GPL Version 2 section of the License * file that accompanied this code. * * Modifications: * If applicable, add the following below the License Header, with the fields * enclosed by brackets [] replaced by your own identifying information: * "Portions Copyright [year] [name of copyright owner]" * * Contributor(s): * If you wish your version of this file to be governed by only the CDDL or * only the GPL Version 2, indicate your decision by adding "[Contributor] * elects to include this software in this distribution under the [CDDL or GPL * Version 2] license." If you don't indicate a single choice of license, a * recipient has the option to distribute your version of this file under * either the CDDL, the GPL Version 2 or to extend the choice of license to * its licensees as provided above. However, if you add GPL Version 2 code * and therefore, elected the GPL Version 2 license, then the option applies * only if the new code is made subject to such option by the copyright * holder. */ package com.sun.s1asdev.ejb.ejb30.clientview.adapted; import javax.ejb.*; import javax.naming.*; import java.util.*; import javax.rmi.PortableRemoteObject; import java.rmi.RemoteException; import javax.annotation.Resource; import javax.annotation.PostConstruct; @Stateful @Remote({Hello.class}) @TransactionManagement(TransactionManagementType.BEAN) public class HelloEJB implements Hello { private static final int ITERATIONS = 1; private SessionContext context; public @Resource void setSc(SessionContext sc) { System.out.println("In HelloEJB:setSc"); context = sc; } @EJB private SlessBusiness2 slessBusiness2; @EJB private SfulBusiness2 sfulBusiness2; @EJB protected SlessRemoteBusiness2 slessRemoteBusiness2; @EJB public SfulRemoteBusiness2 sfulRemoteBusiness2; @EJB public SfulHome sfulHome; public Sful sful; @EJB public SfulBusiness sfulBusiness; @EJB public SlessHome slessHome; public Sless sless; @EJB public SlessBusiness slessBusiness; @EJB public SfulRemoteHome sfulRemoteHome; public SfulRemote sfulRemote; @EJB public SfulRemoteBusiness sfulRemoteBusiness; @EJB public SlessRemoteHome slessRemoteHome; public SlessRemote slessRemote; @EJB public SlessRemoteBusiness slessRemoteBusiness; private long overhead; private int passivateCount; private int activateCount; javax.transaction.UserTransaction ut; @EJB private SlessBusiness refSless_1; @EJB private SlessBusiness refSless_2; @EJB private SlessBusiness2 refSless2_1; @EJB private SlessBusiness2 refSless2_2; @EJB private SfulBusiness refSful_1; @EJB private SfulBusiness refSful_2; @EJB private SfulBusiness2 refSful2_1; @EJB private SfulBusiness2 refSful2_2; @EJB private DummySlessRemote refRemoteSless_1; @EJB private DummySlessRemote refRemoteSless_2; @EJB private DummySlessRemote2 refRemoteSless2_1; @EJB private DummySlessRemote2 refRemoteSless2_2; @EJB private DummyRemote refRemoteSful_1; @EJB private DummyRemote refRemoteSful_2; @EJB private DummyRemote2 refRemoteSful2_1; @EJB private DummyRemote2 refRemoteSful2_2; @PostConstruct public void create() { try { slessBusiness2.foo(); sfulBusiness2.foo(); SlessBusiness2 slessBusiness22 = slessBusiness.getSlessBusiness2(); slessBusiness22.foo(); SfulBusiness2 sfulBusiness22 = sfulBusiness.getSfulBusiness2(); sfulBusiness22.foo(); slessRemoteBusiness2.foo(); slessRemoteBusiness2.bar(); slessRemoteBusiness2.sharedRemoteLocalBusinessSuper(false); refSless_1.sharedRemoteLocalBusinessSuper(true); sfulRemoteBusiness2.foo(); sfulRemoteBusiness2.bar(); sful = sfulHome.create(); System.out.println("Created local sful objs via homes."); sless = slessHome.create(); System.out.println("Created local sless objs via homes."); // There are two create<METHOD> methods with the same signature. // The first is mapped to an @Init method that ignores its input // parameter. The second is mapped to an @Init method that sets // its state to the input parameter. Test both return values to // ensure proper @Init mapping. int ignoreState = 11; SfulRemote sfulRemoteIgnore = sfulRemoteHome.create(ignoreState); int retrievedIgnoreState = sfulRemoteIgnore.getState(); if( retrievedIgnoreState == ignoreState ) { throw new EJBException("Incorrect @Init mapping"); } int state = 10; sfulRemote = sfulRemoteHome.createFoo(state); int retrievedState = sfulRemote.getState(); if( retrievedState == state ) { System.out.println("Created remote sful objs via homes."); } else { throw new EJBException("Incorrect state = " + retrievedState + " retrieved from sfulRemote"); } slessRemote = slessRemoteHome.create(); System.out.println("Created remote sless objs via homes."); ut = context.getUserTransaction(); System.out.println("**1** refSlessBusiness_1 : " + refSless_1); System.out.println("**1** refSlessBusiness_2 : " + refSless_2); System.out.println("**1** refSlessBusiness2_1 : " + refSless2_1); System.out.println("**1** refSlessBusiness2_2 : " + refSless2_2); System.out.println("**1** checkLocalReferences() ==> " + checkSlessLocalReferences()); } catch (Exception ex) { ex.printStackTrace(); } } @PrePassivate public void prePassivate() { System.out.println("In HelloEJB::prePassivate"); passivateCount++; } @PostActivate public void postActivate() { System.out.println("In HelloEJB::postActivate"); // @@@ temporary workaround until UserTransaction serialization is fixed ut = context.getUserTransaction(); activateCount++; } public void shutdown() throws EJBException { try { try { sfulBusiness.removeRetainIfException(true); } catch(Exception e) { System.out.println("successfully caught exception from " + "removeRetainIfException"); sfulBusiness.removeRetainIfException(false); } try { sfulBusiness.remove(); throw new EJBException("2nd sfulBusiness remove should have caused exception"); } catch(Exception e) { System.out.println("Successfully caught exception when attempting to "+ " remove sfulBusiness bean for the second time :" ); } sful.remove(); try { sful.remove(); throw new EJBException("2nd sful remove should have caused exception"); } catch(Exception e) { System.out.println("Successfully caught exception when attempting to "+ " remove sful bean for the second time :" ); } // Doesn't matter how many times we call sless remove() sless.remove(); sless.remove(); try { sfulRemoteBusiness.removeRetainIfException(true); } catch(Exception e) { System.out.println("successfully caught exception from " + "removeRetainIfException"); sfulRemoteBusiness.removeRetainIfException(false); } try { sfulRemoteBusiness.remove(); throw new EJBException("2nd sfulRemoteBusiness remove should have caused exception"); } catch(Exception e) { System.out.println("Successfully caught exception when attempting to "+ " remove sfulRemoteBusiness bean for the second time :" ); } sfulRemote.remove(); try { sfulRemote.remove(); throw new EJBException("2nd sfulRemote remove should have caused exception"); } catch(Exception e) { System.out.println("Successfully caught exception when attempting to "+ " remove sfulRemote bean for the second time :" ); } // Doesn't matter how many times we call slessRemote remove() slessRemote.remove(); slessRemote.remove(); } catch(Exception e) { EJBException ejbEx = new EJBException(); ejbEx.initCause(e); throw ejbEx; } } public boolean hasBeenPassivatedActivated() { return (passivateCount > 0) && (activateCount > 0); } public void warmup(int type) { try { slessBusiness2.foo(); sfulBusiness2.foo(); SlessBusiness2 slessBusiness22 = slessBusiness.getSlessBusiness2(); slessBusiness22.foo(); SfulBusiness2 sfulBusiness22 = sfulBusiness.getSfulBusiness2(); sfulBusiness22.foo(); slessRemoteBusiness2.foo(); slessRemoteBusiness2.bar(); sfulRemoteBusiness2.foo(); sfulRemoteBusiness2.bar(); warmup(type, true, true); warmup(type, true, false); warmup(type, false, true); warmup(type, false, false); // Measure looping and timing overhead long begin = System.currentTimeMillis(); for ( int i=0; i<ITERATIONS; i++ ) { } long end = System.currentTimeMillis(); overhead = end - begin; ut = context.getUserTransaction(); testLocalObjects(sful, sless); testEJBObjects(sfulRemote, slessRemote); } catch(Exception e) { e.printStackTrace(); throw new EJBException(e); } } private void warmup(int type, boolean tx, boolean businessView) throws Exception { // get Hotspot warmed up Common bean = pre(type, tx, businessView); CommonRemote beanRemote = preRemote(type, tx, businessView); for ( int i=0; i<ITERATIONS; i++ ) { bean.requiresNew(); beanRemote.requiresNew(); bean.notSupported(); beanRemote.notSupported(); } for ( int i=0; i<ITERATIONS; i++ ) { bean.required(); beanRemote.required(); if ( tx ) { bean.mandatory(); beanRemote.mandatory(); } else { bean.never(); beanRemote.never(); } bean.supports(); beanRemote.supports(); } if ( tx ) try { ut.commit(); } catch ( Exception ex ) {} } private Common pre(int type, boolean tx, boolean businessView) { if ( tx ) try { ut.begin(); } catch ( Exception ex ) { ex.printStackTrace(); } if ( type == Common.STATELESS ) return businessView ? slessBusiness : sless; else return businessView ? sfulBusiness : sful; } private CommonRemote preRemote(int type, boolean tx, boolean businessView) { if ( type == Common.STATELESS ) { return businessView ? slessRemoteBusiness : slessRemote; } else { return businessView ? sfulRemoteBusiness : sfulRemote; } } private float post(long begin, long end, boolean tx) { if ( tx ) try { ut.commit(); } catch ( Exception ex ) { ex.printStackTrace(); } return (float)( ((double)(end-begin-overhead))/((double)ITERATIONS) * 1000.0 ); } public float requiresNew(int type, boolean tx) { long begin = 0; long end = 0; try { Common bean = pre(type, tx, false); Common busBean = pre(type, tx, true); CommonRemote beanRemote = preRemote(type, tx, false); CommonRemote beanRemoteBusiness = preRemote(type, tx, true); begin = System.currentTimeMillis(); for ( int i=0; i<ITERATIONS; i++ ) { bean.requiresNew(); } for ( int i=0; i<ITERATIONS; i++ ) { busBean.requiresNew(); } for ( int i=0; i<ITERATIONS; i++ ) { beanRemote.requiresNew(); } for ( int i=0; i<ITERATIONS; i++ ) { beanRemoteBusiness.requiresNew(); } end = System.currentTimeMillis(); } catch(Exception e) { e.printStackTrace(); throw new EJBException(e); } return post(begin, end, tx); } public float notSupported(int type, boolean tx) { long begin = 0; long end = 0; try { Common bean = pre(type, tx, false); Common busBean = pre(type, tx, true); CommonRemote beanRemote = preRemote(type, tx, false); CommonRemote beanRemoteBusiness = preRemote(type, tx, false); begin = System.currentTimeMillis(); for ( int i=0; i<ITERATIONS; i++ ) { bean.notSupported(); } for ( int i=0; i<ITERATIONS; i++ ) { busBean.notSupported(); } for ( int i=0; i<ITERATIONS; i++ ) { beanRemote.notSupported(); } for ( int i=0; i<ITERATIONS; i++ ) { beanRemoteBusiness.notSupported(); } end = System.currentTimeMillis(); } catch(Exception e) { e.printStackTrace(); throw new EJBException(e); } return post(begin, end, tx); } public float required(int type, boolean tx) { long begin = 0; long end = 0; try { Common bean = pre(type, tx, false); Common busBean = pre(type, tx, true); CommonRemote beanRemote = preRemote(type, tx, false); CommonRemote beanRemoteBusiness = preRemote(type, tx, true); begin = System.currentTimeMillis(); for ( int i=0; i<ITERATIONS; i++ ) { bean.required(); } for ( int i=0; i<ITERATIONS; i++ ) { busBean.required(); } for ( int i=0; i<ITERATIONS; i++ ) { beanRemote.required(); } for ( int i=0; i<ITERATIONS; i++ ) { beanRemoteBusiness.required(); } end = System.currentTimeMillis(); } catch(Exception e) { e.printStackTrace(); throw new EJBException(e); } return post(begin, end, tx); } public float mandatory(int type, boolean tx) { long begin = 0; long end = 0; try { Common bean = pre(type, tx, false); Common busBean = pre(type, tx, true); CommonRemote beanRemote = preRemote(type, tx, false); CommonRemote beanRemoteBusiness = preRemote(type, tx, true); begin = System.currentTimeMillis(); for ( int i=0; i<ITERATIONS; i++ ) { bean.mandatory(); } for ( int i=0; i<ITERATIONS; i++ ) { busBean.mandatory(); } for ( int i=0; i<ITERATIONS; i++ ) { beanRemote.mandatory(); } for ( int i=0; i<ITERATIONS; i++ ) { beanRemoteBusiness.mandatory(); } end = System.currentTimeMillis(); } catch(Exception e) { e.printStackTrace(); throw new EJBException(e); } return post(begin, end, tx); } public float never(int type, boolean tx) { long begin = 0; long end = 0; try { Common bean = pre(type, tx, false); Common busBean = pre(type, tx, true); CommonRemote beanRemote = preRemote(type, tx, false); CommonRemote beanRemoteBusiness = preRemote(type, tx, true); begin = System.currentTimeMillis(); for ( int i=0; i<ITERATIONS; i++ ) { bean.never(); } for ( int i=0; i<ITERATIONS; i++ ) { busBean.never(); } for ( int i=0; i<ITERATIONS; i++ ) { beanRemote.never(); } for ( int i=0; i<ITERATIONS; i++ ) { beanRemoteBusiness.never(); } end = System.currentTimeMillis(); } catch(Exception e) { e.printStackTrace(); throw new EJBException(e); } return post(begin, end, tx); } public float supports(int type, boolean tx) { long begin = 0; long end = 0; try { Common bean = pre(type, tx, false); Common busBean = pre(type, tx, true); CommonRemote beanRemote = preRemote(type, tx, false); CommonRemote beanRemoteBusiness = preRemote(type, tx, true); begin = System.currentTimeMillis(); for ( int i=0; i<ITERATIONS; i++ ) { bean.supports(); } for ( int i=0; i<ITERATIONS; i++ ) { busBean.supports(); } for ( int i=0; i<ITERATIONS; i++ ) { beanRemote.supports(); } for ( int i=0; i<ITERATIONS; i++ ) { beanRemoteBusiness.supports(); } end = System.currentTimeMillis(); } catch(Exception e) { e.printStackTrace(); throw new EJBException(e); } return post(begin, end, tx); } // assumes lo1 and lo2 are do not have same client identity public void testLocalObjects(EJBLocalObject lo1, EJBLocalObject lo2) { testObjectMethods(lo1, lo2); if( lo1.isIdentical(lo2) ) { throw new EJBException("isIdentical failed"); } if( lo2.isIdentical(lo1) ) { throw new EJBException("isIdentical failed"); } if( !lo1.isIdentical(lo1) ) { throw new EJBException("isIdentical failed"); } if( !lo2.isIdentical(lo2) ) { throw new EJBException("isIdentical failed"); } EJBLocalHome lh1 = lo1.getEJBLocalHome(); if( lh1 == null ) { throw new EJBException("null lh1"); } EJBLocalHome lh2 = lo2.getEJBLocalHome(); if( lh2 == null ) { throw new EJBException("null lh2"); } } // assumes lo1 and lo2 are do not have same client identity public void testEJBObjects(EJBObject o1, EJBObject o2) throws Exception { testObjectMethods(o1, o2); if( o1.isIdentical(o2) ) { throw new EJBException("isIdentical failed"); } if( o2.isIdentical(o1) ) { throw new EJBException("isIdentical failed"); } if( !o1.isIdentical(o1) ) { throw new EJBException("isIdentical failed"); } if( !o2.isIdentical(o2) ) { throw new EJBException("isIdentical failed"); } EJBHome h1 = o1.getEJBHome(); if( h1 == null ) { throw new EJBException("null h1"); } testEJBHome(h1); EJBHome h2 = o2.getEJBHome(); if( h2 == null ) { throw new EJBException("null h2"); } testEJBHome(h2); } public void testEJBHome(EJBHome home) throws Exception { EJBMetaData md = home.getEJBMetaData(); if( md == null ) { throw new EJBException("null md"); } System.out.println("md = " + md); HomeHandle hh = home.getHomeHandle(); if( hh == null ) { throw new EJBException("null hh"); } } public void testObjectMethods(Object o1, Object o2) { // test java.lang.Object methods that must be handled by proxy if( !o1.equals(o1) ) { throw new EJBException("o1.equals() failed"); } if( !o2.equals(o2) ) { throw new EJBException("o2.equals() failed"); } if( o1.equals(o2) ) { throw new EJBException("o1 shouldn't be equal() to o2"); } o1.hashCode(); o2.hashCode(); o1.toString(); o2.toString(); } public boolean checkSlessLocalReferences() { boolean result = (refSless_1 != null); result = result && refSless_1.equals(refSless_1); result = result && refSless_1.equals(refSless_2); result = result && (! refSless_1.equals(refSless2_1)); result = result && (! refSless_1.equals(refSless2_2)); result = result && (! refSless_1.equals(null)); result = result && (! refSless_1.equals(sfulHome)); result = result && (! refSless_1.equals(sful)); result = result && (! refSless_1.equals(sfulBusiness)); result = result && (! refSless_1.equals(sfulRemote)); result = result && (! refSless_1.equals(sfulRemoteHome)); result = result && (refSless_2 != null); result = result && refSless_2.equals(refSless_1); result = result && refSless_2.equals(refSless_2); result = result && (! refSless_2.equals(refSless2_1)); result = result && (! refSless_2.equals(refSless2_2)); result = result && (! refSless_2.equals(null)); result = result && (! refSless_2.equals(sfulHome)); result = result && (! refSless_2.equals(sful)); result = result && (! refSless_2.equals(sfulBusiness)); result = result && (! refSless_2.equals(sfulRemote)); result = result && (! refSless_2.equals(sfulRemoteHome)); result = result && (refSless2_1 != null); result = result && refSless2_1.equals(refSless2_1); result = result && refSless2_1.equals(refSless2_2); result = result && (! refSless2_1.equals(refSless_1)); result = result && (! refSless2_1.equals(refSless_2)); result = result && (! refSless2_1.equals(null)); result = result && (! refSless2_1.equals(sfulHome)); result = result && (! refSless2_1.equals(sful)); result = result && (! refSless2_1.equals(sfulBusiness)); result = result && (! refSless2_1.equals(sfulRemote)); result = result && (! refSless2_1.equals(sfulRemoteHome)); result = result && (refSless2_2 != null); result = result && refSless2_2.equals(refSless2_2); result = result && refSless2_2.equals(refSless2_1); result = result && (! refSless2_2.equals(refSless_1)); result = result && (! refSless2_2.equals(refSless_2)); result = result && (! refSless2_2.equals(null)); result = result && (! refSless2_2.equals(sfulHome)); result = result && (! refSless2_2.equals(sful)); result = result && (! refSless2_2.equals(sfulBusiness)); result = result && (! refSless2_2.equals(sfulRemote)); result = result && (! refSless2_2.equals(sfulRemoteHome)); return result; } public boolean checkSfulLocalReferences() { boolean result = (refSful_1 != null); result = result && (refSful_1.equals(refSful_1)); result = result && (! refSful_1.equals(refSful_2)); result = result && (! refSful_1.equals(refSful2_1)); result = result && (! refSful_1.equals(refSful2_2)); result = result && (! refSful_1.equals(null)); result = result && (! refSful_1.equals(sfulHome)); result = result && (! refSful_1.equals(sful)); result = result && (! refSful_1.equals(sfulBusiness)); result = result && (! refSful_1.equals(sfulRemote)); result = result && (! refSful_1.equals(sfulRemoteHome)); result = result && (! refSful_1.equals(new Object())); result = result && (refSful_2 != null); result = result && (! refSful_2.equals(refSful_1)); result = result && (refSful_2.equals(refSful_2)); result = result && (! refSful_2.equals(refSful2_1)); result = result && (! refSful_2.equals(refSful2_2)); result = result && (! refSful_2.equals(null)); result = result && (! refSful_2.equals(sfulHome)); result = result && (! refSful_2.equals(sful)); result = result && (! refSful_2.equals(sfulBusiness)); result = result && (! refSful_2.equals(sfulRemote)); result = result && (! refSful_2.equals(sfulRemoteHome)); result = result && (! refSful_2.equals(new Object())); result = result && (refSful2_1 != null); result = result && (refSful2_1.equals(refSful2_1)); result = result && (! refSful2_1.equals(refSful2_2)); result = result && (! refSful2_1.equals(refSful_1)); result = result && (! refSful2_1.equals(refSful_2)); result = result && (! refSful2_1.equals(null)); result = result && (! refSful2_1.equals(sfulHome)); result = result && (! refSful2_1.equals(sful)); result = result && (! refSful2_1.equals(sfulBusiness)); result = result && (! refSful2_1.equals(sfulRemote)); result = result && (! refSful2_1.equals(sfulRemoteHome)); result = result && (! refSful2_1.equals(new Object())); result = result && (refSful2_2 != null); result = result && (refSful2_2.equals(refSful2_2)); result = result && (! refSful2_2.equals(refSful2_1)); result = result && (! refSful2_2.equals(refSful_1)); result = result && (! refSful2_2.equals(refSful_2)); result = result && (! refSful2_2.equals(null)); result = result && (! refSful2_2.equals(sfulHome)); result = result && (! refSful2_2.equals(sful)); result = result && (! refSful2_2.equals(sfulBusiness)); result = result && (! refSful2_2.equals(sfulRemote)); result = result && (! refSful2_2.equals(sfulRemoteHome)); result = result && (! refSful2_2.equals(new Object())); return result; } public boolean checkSlessRemoteReferences() { boolean result = (refRemoteSless_1 != null); result = result && (refRemoteSless_1.equals(refRemoteSless_1)); result = result && (refRemoteSless_1.equals(refRemoteSless_2)); result = result && (! refRemoteSless_1.equals(refRemoteSless2_1)); result = result && (! refRemoteSless_1.equals(refRemoteSless2_2)); result = result && (! refRemoteSless_1.equals(null)); result = result && (! refRemoteSless_1.equals(sfulHome)); result = result && (! refRemoteSless_1.equals(sful)); result = result && (! refRemoteSless_1.equals(sfulBusiness)); result = result && (! refRemoteSless_1.equals(sfulRemote)); result = result && (! refRemoteSless_1.equals(sfulRemoteHome)); result = result && (! refRemoteSless_1.equals(new Object())); result = result && (refRemoteSless_2 != null); result = result && (refRemoteSless_2.equals(refRemoteSless_1)); result = result && (refRemoteSless_2.equals(refRemoteSless_2)); result = result && (! refRemoteSless_2.equals(refRemoteSless2_1)); result = result && (! refRemoteSless_2.equals(refRemoteSless2_2)); result = result && (! refRemoteSless_2.equals(null)); result = result && (! refRemoteSless_2.equals(sfulHome)); result = result && (! refRemoteSless_2.equals(sful)); result = result && (! refRemoteSless_2.equals(sfulBusiness)); result = result && (! refRemoteSless_2.equals(sfulRemote)); result = result && (! refRemoteSless_2.equals(sfulRemoteHome)); result = result && (! refRemoteSless_2.equals(new Object())); result = result && (refRemoteSless2_1 != null); result = result && (refRemoteSless2_1.equals(refRemoteSless2_1)); result = result && (refRemoteSless2_1.equals(refRemoteSless2_2)); result = result && (! refRemoteSless2_1.equals(refRemoteSless_1)); result = result && (! refRemoteSless2_1.equals(refRemoteSless_2)); result = result && (! refRemoteSless2_1.equals(null)); result = result && (! refRemoteSless2_1.equals(sfulHome)); result = result && (! refRemoteSless2_1.equals(sful)); result = result && (! refRemoteSless2_1.equals(sfulBusiness)); result = result && (! refRemoteSless2_1.equals(sfulRemote)); result = result && (! refRemoteSless2_1.equals(sfulRemoteHome)); result = result && (! refRemoteSless2_1.equals(new Object())); result = result && (refRemoteSless2_2 != null); result = result && (refRemoteSless2_2.equals(refRemoteSless2_2)); result = result && (refRemoteSless2_2.equals(refRemoteSless2_1)); result = result && (! refRemoteSless2_2.equals(refRemoteSless_1)); result = result && (! refRemoteSless2_2.equals(refRemoteSless_2)); result = result && (! refRemoteSless2_2.equals(null)); result = result && (! refRemoteSless2_2.equals(sfulHome)); result = result && (! refRemoteSless2_2.equals(sful)); result = result && (! refRemoteSless2_2.equals(sfulBusiness)); result = result && (! refRemoteSless2_2.equals(sfulRemote)); result = result && (! refRemoteSless2_2.equals(sfulRemoteHome)); result = result && (! refRemoteSless2_2.equals(new Object())); return result; } public boolean checkSfulRemoteReferences() { boolean result = (refRemoteSful_1 != null); result = result && (refRemoteSful_1.equals(refRemoteSful_1)); result = result && (! refRemoteSful_1.equals(refRemoteSful_2)); result = result && (! refRemoteSful_1.equals(refRemoteSful2_1)); result = result && (! refRemoteSful_1.equals(refRemoteSful2_2)); result = result && (! refRemoteSful_1.equals(null)); result = result && (! refRemoteSful_1.equals(sfulHome)); result = result && (! refRemoteSful_1.equals(sful)); result = result && (! refRemoteSful_1.equals(sfulBusiness)); result = result && (! refRemoteSful_1.equals(sfulRemote)); result = result && (! refRemoteSful_1.equals(sfulRemoteHome)); result = result && (! refRemoteSful_1.equals(new Object())); result = result && (refRemoteSful_2 != null); result = result && (! refRemoteSful_2.equals(refRemoteSful_1)); result = result && (refRemoteSful_2.equals(refRemoteSful_2)); result = result && (! refRemoteSful_2.equals(refRemoteSful2_1)); result = result && (! refRemoteSful_2.equals(refRemoteSful2_2)); result = result && (! refRemoteSful_2.equals(null)); result = result && (! refRemoteSful_2.equals(sfulHome)); result = result && (! refRemoteSful_2.equals(sful)); result = result && (! refRemoteSful_2.equals(sfulBusiness)); result = result && (! refRemoteSful_2.equals(sfulRemote)); result = result && (! refRemoteSful_2.equals(sfulRemoteHome)); result = result && (! refRemoteSful_2.equals(new Object())); result = result && (refRemoteSful2_1 != null); result = result && (refRemoteSful2_1.equals(refRemoteSful2_1)); result = result && (! refRemoteSful2_1.equals(refRemoteSful2_2)); result = result && (! refRemoteSful2_1.equals(refRemoteSful_1)); result = result && (! refRemoteSful2_1.equals(refRemoteSful_2)); result = result && (! refRemoteSful2_1.equals(null)); result = result && (! refRemoteSful2_1.equals(sfulHome)); result = result && (! refRemoteSful2_1.equals(sful)); result = result && (! refRemoteSful2_1.equals(sfulBusiness)); result = result && (! refRemoteSful2_1.equals(sfulRemote)); result = result && (! refRemoteSful2_1.equals(sfulRemoteHome)); result = result && (! refRemoteSful2_1.equals(new Object())); result = result && (refRemoteSful2_2 != null); result = result && (refRemoteSful2_2.equals(refRemoteSful2_2)); result = result && (! refRemoteSful2_2.equals(refRemoteSful2_1)); result = result && (! refRemoteSful2_2.equals(refRemoteSful_1)); result = result && (! refRemoteSful2_2.equals(refRemoteSful_2)); result = result && (! refRemoteSful2_2.equals(null)); result = result && (! refRemoteSful2_2.equals(sfulHome)); result = result && (! refRemoteSful2_2.equals(sful)); result = result && (! refRemoteSful2_2.equals(sfulBusiness)); result = result && (! refRemoteSful2_2.equals(sfulRemote)); result = result && (! refRemoteSful2_2.equals(sfulRemoteHome)); result = result && (! refRemoteSful2_2.equals(new Object())); return result; } public DummyRemote getSfulRemoteBusiness(int num) { return (num == 1) ? refRemoteSful_1 : refRemoteSful_2; } public DummyRemote2 getSfulRemoteBusiness2(int num) { return (num == 1) ? refRemoteSful2_1 : refRemoteSful2_2; } public boolean compareRemoteRefs(Object ref1, Object ref2) { return ref1.equals(ref2); } }