public void testClose() throws Exception { Participant provider = new Participant("prov"); Participant consumer = new Participant("cons"); final Observer obs = newObserver(consumer, InterfaceA.class); final ObserverListener listener = new ObserverListener(consumer); obs.registerListener(listener); provider.createA(A); waitForEvent(listener, provider, A); ProxyBusObject pbo = obs.getFirst(); assertNotNull(pbo); obs.close(); obs.close(); obs.registerListener(listener); assertNull(obs.getFirst()); assertNull(obs.get(pbo.getBusName(), pbo.getObjPath())); assertNull(obs.getNext(pbo)); obs.unregisterListener(listener); obs.unregisterAllListeners(); obs.close(); Thread.sleep(100); listener.expectInvocations(0); }
@Override public void tearDown() throws Exception { for (Observer observer : observers) { observer.close(); } for (Participant participant : participants) { participant.stop(); } participants.clear(); assertFalse(failure); System.gc(); System.gc(); System.runFinalization(); System.runFinalization(); Thread.sleep(100); }