From b717c89ef9774703fffb3b9405bd3493f96c1233 Mon Sep 17 00:00:00 2001 From: David Karnok Date: Mon, 27 Mar 2017 21:37:00 +0200 Subject: [PATCH] 2.x: fix CallbackCompletableObserver calling onError, ResourceX wording (#5240) --- .../CallbackCompletableObserver.java | 3 +- .../observers/DisposableObserver.java | 2 +- .../ResourceCompletableObserver.java | 2 +- .../observers/ResourceMaybeObserver.java | 2 +- .../observers/ResourceSingleObserver.java | 2 +- .../completable/CompletableTest.java | 28 +++++++++++-------- .../io/reactivex/schedulers/TimedTest.java | 2 +- 7 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/main/java/io/reactivex/internal/observers/CallbackCompletableObserver.java b/src/main/java/io/reactivex/internal/observers/CallbackCompletableObserver.java index d64e705e0e..cfb758552a 100644 --- a/src/main/java/io/reactivex/internal/observers/CallbackCompletableObserver.java +++ b/src/main/java/io/reactivex/internal/observers/CallbackCompletableObserver.java @@ -52,8 +52,7 @@ public void onComplete() { onComplete.run(); } catch (Throwable ex) { Exceptions.throwIfFatal(ex); - onError(ex); - return; + RxJavaPlugins.onError(ex); } lazySet(DisposableHelper.DISPOSED); } diff --git a/src/main/java/io/reactivex/observers/DisposableObserver.java b/src/main/java/io/reactivex/observers/DisposableObserver.java index 40a18fee73..15b90ccb0f 100644 --- a/src/main/java/io/reactivex/observers/DisposableObserver.java +++ b/src/main/java/io/reactivex/observers/DisposableObserver.java @@ -24,7 +24,7 @@ * *

All pre-implemented final methods are thread-safe. * - *

Use the protected {@link #dispose()} to dispose the sequence from within an + *

Use the public {@link #dispose()} method to dispose the sequence from within an * {@code onNext} implementation. * *

Like all other consumers, {@code DefaultObserver} can be subscribed only once. diff --git a/src/main/java/io/reactivex/observers/ResourceCompletableObserver.java b/src/main/java/io/reactivex/observers/ResourceCompletableObserver.java index 26740c70b0..b892abbf62 100644 --- a/src/main/java/io/reactivex/observers/ResourceCompletableObserver.java +++ b/src/main/java/io/reactivex/observers/ResourceCompletableObserver.java @@ -29,7 +29,7 @@ *

Override the protected {@link #onStart()} to perform initialization when this * {@code ResourceCompletableObserver} is subscribed to a source. * - *

Use the protected {@link #dispose()} to dispose the sequence externally and release + *

Use the public {@link #dispose()} method to dispose the sequence externally and release * all resources. * *

To release the associated resources, one has to call {@link #dispose()} diff --git a/src/main/java/io/reactivex/observers/ResourceMaybeObserver.java b/src/main/java/io/reactivex/observers/ResourceMaybeObserver.java index 9cb97a689a..c12e9e2417 100644 --- a/src/main/java/io/reactivex/observers/ResourceMaybeObserver.java +++ b/src/main/java/io/reactivex/observers/ResourceMaybeObserver.java @@ -33,7 +33,7 @@ *

Override the protected {@link #onStart()} to perform initialization when this * {@code ResourceMaybeObserver} is subscribed to a source. * - *

Use the protected {@link #dispose()} to dispose the sequence externally and release + *

Use the public {@link #dispose()} method to dispose the sequence externally and release * all resources. * *

To release the associated resources, one has to call {@link #dispose()} diff --git a/src/main/java/io/reactivex/observers/ResourceSingleObserver.java b/src/main/java/io/reactivex/observers/ResourceSingleObserver.java index a0182adba9..88efae5c74 100644 --- a/src/main/java/io/reactivex/observers/ResourceSingleObserver.java +++ b/src/main/java/io/reactivex/observers/ResourceSingleObserver.java @@ -30,7 +30,7 @@ *

Override the protected {@link #onStart()} to perform initialization when this * {@code ResourceSingleObserver} is subscribed to a source. * - *

Use the protected {@link #dispose()} to dispose the sequence externally and release + *

Use the public {@link #dispose()} method to dispose the sequence externally and release * all resources. * *

To release the associated resources, one has to call {@link #dispose()} diff --git a/src/test/java/io/reactivex/completable/CompletableTest.java b/src/test/java/io/reactivex/completable/CompletableTest.java index 12f77135fb..a764d682f1 100644 --- a/src/test/java/io/reactivex/completable/CompletableTest.java +++ b/src/test/java/io/reactivex/completable/CompletableTest.java @@ -2566,18 +2566,24 @@ public void run() { } @Test(timeout = 5000) public void subscribeTwoCallbacksCompleteThrows() { - final AtomicReference err = new AtomicReference(); - normal.completable.subscribe(new Action() { - @Override - public void run() { throw new TestException(); } - }, new Consumer() { - @Override - public void accept(Throwable e) { - err.set(e); - } - }); + List errors = TestHelper.trackPluginErrors(); + try { + final AtomicReference err = new AtomicReference(); + normal.completable.subscribe(new Action() { + @Override + public void run() { throw new TestException(); } + }, new Consumer() { + @Override + public void accept(Throwable e) { + err.set(e); + } + }); - Assert.assertTrue(String.valueOf(err.get()), err.get() instanceof TestException); + Assert.assertNull(err.get()); + TestHelper.assertUndeliverable(errors, 0, TestException.class); + } finally { + RxJavaPlugins.reset(); + } } @Test(timeout = 5000) diff --git a/src/test/java/io/reactivex/schedulers/TimedTest.java b/src/test/java/io/reactivex/schedulers/TimedTest.java index b69bf87f31..7e8cb41e1a 100644 --- a/src/test/java/io/reactivex/schedulers/TimedTest.java +++ b/src/test/java/io/reactivex/schedulers/TimedTest.java @@ -84,7 +84,7 @@ public void toStringOf() { assertEquals("Timed[time=5, unit=SECONDS, value=1]", t1.toString()); } - + @Test(expected = NullPointerException.class) public void timeUnitNullFail() throws Exception { new Timed(1, 5, null);