Skip to content

Commit e2a2159

Browse files
punitdaakarnokd
authored andcommitted
2.x: explain null observer/subscriber return errors from RxJavaPlugins in detail (#6175)
1 parent ba7bbb4 commit e2a2159

File tree

7 files changed

+8
-6
lines changed

7 files changed

+8
-6
lines changed

src/main/java/io/reactivex/Completable.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2168,6 +2168,8 @@ public final void subscribe(CompletableObserver observer) {
21682168

21692169
observer = RxJavaPlugins.onSubscribe(this, observer);
21702170

2171+
ObjectHelper.requireNonNull(observer, "The RxJavaPlugins.onSubscribe hook returned a null CompletableObserver. Please check the handler provided to RxJavaPlugins.setOnCompletableSubscribe for invalid null returns. Further reading: https://github.com/ReactiveX/RxJava/wiki/Plugins");
2172+
21712173
subscribeActual(observer);
21722174
} catch (NullPointerException ex) { // NOPMD
21732175
throw ex;

src/main/java/io/reactivex/Flowable.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14473,7 +14473,7 @@ public final void subscribe(FlowableSubscriber<? super T> s) {
1447314473
try {
1447414474
Subscriber<? super T> z = RxJavaPlugins.onSubscribe(this, s);
1447514475

14476-
ObjectHelper.requireNonNull(z, "Plugin returned null Subscriber");
14476+
ObjectHelper.requireNonNull(z, "The RxJavaPlugins.onSubscribe hook returned a null FlowableSubscriber. Please check the handler provided to RxJavaPlugins.setOnFlowableSubscribe for invalid null returns. Further reading: https://github.com/ReactiveX/RxJava/wiki/Plugins");
1447714477

1447814478
subscribeActual(z);
1447914479
} catch (NullPointerException e) { // NOPMD

src/main/java/io/reactivex/Maybe.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4150,7 +4150,7 @@ public final void subscribe(MaybeObserver<? super T> observer) {
41504150

41514151
observer = RxJavaPlugins.onSubscribe(this, observer);
41524152

4153-
ObjectHelper.requireNonNull(observer, "observer returned by the RxJavaPlugins hook is null");
4153+
ObjectHelper.requireNonNull(observer, "The RxJavaPlugins.onSubscribe hook returned a null MaybeObserver. Please check the handler provided to RxJavaPlugins.setOnMaybeSubscribe for invalid null returns. Further reading: https://github.com/ReactiveX/RxJava/wiki/Plugins");
41544154

41554155
try {
41564156
subscribeActual(observer);

src/main/java/io/reactivex/Observable.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12079,7 +12079,7 @@ public final void subscribe(Observer<? super T> observer) {
1207912079
try {
1208012080
observer = RxJavaPlugins.onSubscribe(this, observer);
1208112081

12082-
ObjectHelper.requireNonNull(observer, "Plugin returned null Observer");
12082+
ObjectHelper.requireNonNull(observer, "The RxJavaPlugins.onSubscribe hook returned a null Observer. Please change the handler provided to RxJavaPlugins.setOnObservableSubscribe for invalid null returns. Further reading: https://github.com/ReactiveX/RxJava/wiki/Plugins");
1208312083

1208412084
subscribeActual(observer);
1208512085
} catch (NullPointerException e) { // NOPMD

src/main/java/io/reactivex/Single.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3427,7 +3427,7 @@ public final void subscribe(SingleObserver<? super T> observer) {
34273427

34283428
observer = RxJavaPlugins.onSubscribe(this, observer);
34293429

3430-
ObjectHelper.requireNonNull(observer, "subscriber returned by the RxJavaPlugins hook is null");
3430+
ObjectHelper.requireNonNull(observer, "The RxJavaPlugins.onSubscribe hook returned a null SingleObserver. Please check the handler provided to RxJavaPlugins.setOnSingleSubscribe for invalid null returns. Further reading: https://github.com/ReactiveX/RxJava/wiki/Plugins");
34313431

34323432
try {
34333433
subscribeActual(observer);

src/test/java/io/reactivex/flowable/FlowableSubscriberTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -815,7 +815,7 @@ public Subscriber apply(Flowable a, Subscriber b) throws Exception {
815815
Flowable.just(1).test();
816816
fail("Should have thrown");
817817
} catch (NullPointerException ex) {
818-
assertEquals("Plugin returned null Subscriber", ex.getMessage());
818+
assertEquals("The RxJavaPlugins.onSubscribe hook returned a null FlowableSubscriber. Please check the handler provided to RxJavaPlugins.setOnFlowableSubscribe for invalid null returns. Further reading: https://github.com/ReactiveX/RxJava/wiki/Plugins", ex.getMessage());
819819
}
820820
} finally {
821821
RxJavaPlugins.reset();

src/test/java/io/reactivex/observable/ObservableSubscriberTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ public Observer apply(Observable a, Observer b) throws Exception {
205205
Observable.just(1).test();
206206
fail("Should have thrown");
207207
} catch (NullPointerException ex) {
208-
assertEquals("Plugin returned null Observer", ex.getMessage());
208+
assertEquals("The RxJavaPlugins.onSubscribe hook returned a null Observer. Please change the handler provided to RxJavaPlugins.setOnObservableSubscribe for invalid null returns. Further reading: https://github.com/ReactiveX/RxJava/wiki/Plugins", ex.getMessage());
209209
}
210210
} finally {
211211
RxJavaPlugins.reset();

0 commit comments

Comments
 (0)