/** * Returns the currently contained Disposable or null if this container is empty. * @return the current Disposable, may be null */ @Nullable public Disposable get() { Disposable d = resource.get(); if (d == DisposableHelper.DISPOSED) { return Disposables.disposed(); } return d; }
/** * Returns the currently contained Disposable or null if this container is empty. * @return the current Disposable, may be null */ @Nullable public Disposable get() { Disposable d = resource.get(); if (d == DisposableHelper.DISPOSED) { return Disposables.disposed(); } return d; }
/** * Returns the currently contained Disposable or null if this container is empty. * @return the current Disposable, may be null */ @Nullable public Disposable get() { Disposable d = resource.get(); if (d == DisposableHelper.DISPOSED) { return Disposables.disposed(); } return d; }
@Override protected void subscribeActual(MaybeObserver<? super T> observer) { observer.onSubscribe(Disposables.disposed()); observer.onSuccess(value); }
@Override protected void subscribeActual(MaybeObserver<? super T> observer) { observer.onSubscribe(Disposables.disposed()); observer.onError(error); } }
@Override protected void subscribeActual(MaybeObserver<? super T> observer) { observer.onSubscribe(Disposables.disposed()); observer.onSuccess(value); }
@Override protected void subscribeActual(SingleObserver<? super T> s) { s.onSubscribe(Disposables.disposed()); s.onSuccess(value); }
@Override protected void subscribeActual(SingleObserver<? super T> s) { s.onSubscribe(Disposables.disposed()); s.onSuccess(value); }
@Override protected void subscribeActual(MaybeObserver<? super T> observer) { observer.onSubscribe(Disposables.disposed()); observer.onError(error); } }
@Override protected void subscribeActual(Observer<? super Integer> observer) { observer.onSubscribe(Disposables.disposed()); } }.refCount();
@Override protected void subscribeActual(MaybeObserver<? super T> observer) { observer.onSubscribe(Disposables.disposed()); Throwable ex; try { ex = ObjectHelper.requireNonNull(errorSupplier.call(), "Callable returned null throwable. Null values are generally not allowed in 2.x operators and sources."); } catch (Throwable ex1) { Exceptions.throwIfFatal(ex1); ex = ex1; } observer.onError(ex); } }
@Override protected void subscribeActual(MaybeObserver<? super T> observer) { observer.onSubscribe(Disposables.disposed()); Throwable ex; try { ex = ObjectHelper.requireNonNull(errorSupplier.call(), "Callable returned null throwable. Null values are generally not allowed in 2.x operators and sources."); } catch (Throwable ex1) { Exceptions.throwIfFatal(ex1); ex = ex1; } observer.onError(ex); } }
@Test public void testUnsubscribed() { Disposable disposed = Disposables.disposed(); assertTrue(disposed.isDisposed()); }
@Test public void shutdownRejects() { final int[] calls = { 0 }; Runnable r = new Runnable() { @Override public void run() { calls[0]++; } }; Scheduler s = new SingleScheduler(); s.shutdown(); assertEquals(Disposables.disposed(), s.scheduleDirect(r)); assertEquals(Disposables.disposed(), s.scheduleDirect(r, 1, TimeUnit.SECONDS)); assertEquals(Disposables.disposed(), s.schedulePeriodicallyDirect(r, 1, 1, TimeUnit.SECONDS)); Worker w = s.createWorker(); ((ScheduledWorker)w).executor.shutdownNow(); assertEquals(Disposables.disposed(), w.schedule(r)); assertEquals(Disposables.disposed(), w.schedule(r, 1, TimeUnit.SECONDS)); assertEquals(Disposables.disposed(), w.schedulePeriodically(r, 1, 1, TimeUnit.SECONDS)); assertEquals(0, calls[0]); w.dispose(); assertTrue(w.isDisposed()); }
s.shutdown(); assertEquals(Disposables.disposed(), s.scheduleDirect(r)); assertEquals(Disposables.disposed(), s.scheduleDirect(r, 1, TimeUnit.SECONDS)); assertEquals(Disposables.disposed(), s.schedulePeriodicallyDirect(r, 1, 1, TimeUnit.SECONDS)); assertEquals(Disposables.disposed(), w.schedule(r)); assertEquals(Disposables.disposed(), w.schedule(r, 1, TimeUnit.SECONDS)); assertEquals(Disposables.disposed(), w.schedulePeriodically(r, 1, 1, TimeUnit.SECONDS));
@Test(expected = UnsupportedOperationException.class) public void offer() { TestObserver<Integer> to = new TestObserver<Integer>(); BasicFuseableObserver<Integer, Integer> o = new BasicFuseableObserver<Integer, Integer>(to) { @Nullable @Override public Integer poll() throws Exception { return null; } @Override public int requestFusion(int mode) { return 0; } @Override public void onNext(Integer value) { } @Override protected boolean beforeDownstream() { return false; } }; o.onSubscribe(Disposables.disposed()); to.assertNotSubscribed(); o.offer(1); }
@Test public void shutdownRejects() { final int[] calls = { 0 }; Runnable r = new Runnable() { @Override public void run() { calls[0]++; } }; Scheduler s = getScheduler(); Worker w = s.createWorker(); w.dispose(); assertTrue(w.isDisposed()); assertEquals(Disposables.disposed(), w.schedule(r)); assertEquals(Disposables.disposed(), w.schedule(r, 1, TimeUnit.SECONDS)); assertEquals(Disposables.disposed(), w.schedulePeriodically(r, 1, 1, TimeUnit.SECONDS)); NewThreadWorker actual = (NewThreadWorker)w; CompositeDisposable cd = new CompositeDisposable(); actual.scheduleActual(r, 1, TimeUnit.SECONDS, cd); assertEquals(0, cd.size()); assertEquals(0, calls[0]); }
@Test public void shutdownRejects() { final int[] calls = { 0 }; Runnable r = new Runnable() { @Override public void run() { calls[0]++; } }; Scheduler s = getScheduler(); Worker w = s.createWorker(); w.dispose(); assertTrue(w.isDisposed()); assertEquals(Disposables.disposed(), w.schedule(r)); assertEquals(Disposables.disposed(), w.schedule(r, 1, TimeUnit.SECONDS)); assertEquals(Disposables.disposed(), w.schedulePeriodically(r, 1, 1, TimeUnit.SECONDS)); NewThreadWorker actual = (NewThreadWorker)w; CompositeDisposable cd = new CompositeDisposable(); actual.scheduleActual(r, 1, TimeUnit.SECONDS, cd); assertEquals(0, cd.size()); assertEquals(0, calls[0]); }