@Override public void run() { MapMakerInternalMap<?, ?, ?, ?> map = mapReference.get(); if (map == null) { throw new CancellationException(); } for (Segment<?, ?, ?, ?> segment : map.segments) { segment.runCleanup(); } } }
@Override public void starting() { ServiceManagerState state = this.state.get(); if (state != null) { state.transitionService(service, NEW, STARTING); if (!(service instanceof NoOpService)) { logger.log(Level.FINE, "Starting {0}.", service); } } }
@Override public void stopping(State from) { ServiceManagerState state = this.state.get(); if (state != null) { state.transitionService(service, from, STOPPING); } }
@Override public void running() { ServiceManagerState state = this.state.get(); if (state != null) { state.transitionService(service, STARTING, RUNNING); } }
@Override protected Object unwrapCachedValue(Object cached) { if (currentKey instanceof EnhancerKey) { EnhancerFactoryData data = ((WeakReference<EnhancerFactoryData>) cached).get(); return data; } return super.unwrapCachedValue(cached); }
@Override protected void subscribeActual(MaybeObserver<? super Object> observer) { observer.onSubscribe(wr.get()); }; }
@Override protected void subscribeActual(SingleObserver<? super Object> observer) { observer.onSubscribe(wr.get()); }; }
@Override protected void subscribeActual(CompletableObserver observer) { observer.onSubscribe(wr.get()); }; }
public void testAwaitClear() { final WeakReference<Object> ref = new WeakReference<>(new Object()); GcFinalization.awaitClear(ref); assertNull(ref.get()); }
public void testStrongImplementations() { for (Striped<?> striped : strongImplementations()) { WeakReference<Object> weakRef = new WeakReference<>(striped.get(new Object())); WeakReference<Object> garbage = new WeakReference<>(new Object()); GcFinalization.awaitClear(garbage); assertNotNull(weakRef.get()); } }
@Test public void justUnsubscribed() throws Exception { o = new Object(); WeakReference<Object> wr = new WeakReference<Object>(o); TestObserver<Long> to = Observable.just(o).count().toObservable().onTerminateDetach().test(); o = null; to.cancel(); System.gc(); Thread.sleep(200); Assert.assertNull("Object retained!", wr.get()); }
@Override protected void subscribeActual(MaybeObserver<? super Integer> observer) { observer.onSubscribe(wr.get()); observer.onError(new TestException()); observer.onError(new IOException()); }; }
@Override protected void subscribeActual(SingleObserver<? super Integer> observer) { observer.onSubscribe(wr.get()); observer.onError(new TestException()); observer.onError(new IOException()); }; }
@Override protected void subscribeActual(CompletableObserver observer) { observer.onSubscribe(wr.get()); observer.onError(new TestException()); observer.onError(new IOException()); }; }
@Override protected void subscribeActual(CompletableObserver observer) { observer.onSubscribe(wr.get()); observer.onComplete(); observer.onComplete(); }; }
@Override protected void subscribeActual(MaybeObserver<? super Integer> observer) { observer.onSubscribe(wr.get()); observer.onComplete(); observer.onComplete(); }; }
@Override protected void subscribeActual(MaybeObserver<? super Integer> observer) { observer.onSubscribe(wr.get()); observer.onSuccess(1); observer.onSuccess(2); }; }
@Override protected void subscribeActual(SingleObserver<? super Integer> observer) { observer.onSubscribe(wr.get()); observer.onSuccess(1); observer.onSuccess(2); }; }
@Test public void justUnsubscribed() throws Exception { o = new Object(); WeakReference<Object> wr = new WeakReference<Object>(o); TestSubscriber<Object> ts = new TestSubscriber<Object>(0); Flowable.just(o).count().toFlowable().onTerminateDetach().subscribe(ts); ts.cancel(); o = null; System.gc(); Thread.sleep(200); Assert.assertNull("Object retained!", wr.get()); }
@Test public void just() throws Exception { o = new Object(); WeakReference<Object> wr = new WeakReference<Object>(o); TestSubscriber<Object> ts = new TestSubscriber<Object>(); Flowable.just(o).count().toFlowable().onTerminateDetach().subscribe(ts); ts.assertValue(1L); ts.assertComplete(); ts.assertNoErrors(); o = null; System.gc(); Thread.sleep(200); Assert.assertNull("Object retained!", wr.get()); }