diff --git a/src/main/java/io/reactivex/rxjava3/core/Maybe.java b/src/main/java/io/reactivex/rxjava3/core/Maybe.java index ad4e824893..251127071f 100644 --- a/src/main/java/io/reactivex/rxjava3/core/Maybe.java +++ b/src/main/java/io/reactivex/rxjava3/core/Maybe.java @@ -3939,7 +3939,7 @@ public final Maybe onErrorResumeWith(@NonNull MaybeSource next) @SchedulerSupport(SchedulerSupport.NONE) public final Maybe onErrorResumeNext(@NonNull Function> resumeFunction) { Objects.requireNonNull(resumeFunction, "resumeFunction is null"); - return RxJavaPlugins.onAssembly(new MaybeOnErrorNext<>(this, resumeFunction, true)); + return RxJavaPlugins.onAssembly(new MaybeOnErrorNext<>(this, resumeFunction)); } /** @@ -3996,37 +3996,6 @@ public final Maybe onErrorReturnItem(@NonNull T item) { return onErrorReturn(Functions.justFunction(item)); } - /** - * Resumes the flow with the given {@link MaybeSource} when the current {@code Maybe} fails - * with an {@link Exception} subclass instead of signaling the error via {@code onError}. - *

- * This differs from {@link #onErrorResumeNext} in that this one does not handle {@link java.lang.Throwable} - * or {@link java.lang.Error} but lets those continue through. - *

- * - *

- * You can use this to prevent exceptions from propagating or to supply fallback data should exceptions be - * encountered. - *

- *
Scheduler:
- *
{@code onExceptionResumeNext} does not operate by default on a particular {@link Scheduler}.
- *
- * - * @param next - * the next {@code MaybeSource} that will take over if the current {@code Maybe} encounters - * an exception - * @return the new {@code Maybe} instance - * @throws NullPointerException if {@code next} is {@code null} - * @see ReactiveX operators documentation: Catch - */ - @CheckReturnValue - @NonNull - @SchedulerSupport(SchedulerSupport.NONE) - public final Maybe onExceptionResumeNext(@NonNull MaybeSource next) { - Objects.requireNonNull(next, "next is null"); - return RxJavaPlugins.onAssembly(new MaybeOnErrorNext<>(this, Functions.justFunction(next), false)); - } - /** * Nulls out references to the upstream producer and downstream {@link MaybeObserver} if * the sequence is terminated or downstream calls {@code dispose()}. diff --git a/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeOnErrorNext.java b/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeOnErrorNext.java index 434685c074..97fdd7b537 100644 --- a/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeOnErrorNext.java +++ b/src/main/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeOnErrorNext.java @@ -31,19 +31,15 @@ public final class MaybeOnErrorNext extends AbstractMaybeWithUpstream { final Function> resumeFunction; - final boolean allowFatal; - public MaybeOnErrorNext(MaybeSource source, - Function> resumeFunction, - boolean allowFatal) { + Function> resumeFunction) { super(source); this.resumeFunction = resumeFunction; - this.allowFatal = allowFatal; } @Override protected void subscribeActual(MaybeObserver observer) { - source.subscribe(new OnErrorNextMaybeObserver<>(observer, resumeFunction, allowFatal)); + source.subscribe(new OnErrorNextMaybeObserver<>(observer, resumeFunction)); } static final class OnErrorNextMaybeObserver @@ -56,14 +52,10 @@ static final class OnErrorNextMaybeObserver final Function> resumeFunction; - final boolean allowFatal; - OnErrorNextMaybeObserver(MaybeObserver actual, - Function> resumeFunction, - boolean allowFatal) { + Function> resumeFunction) { this.downstream = actual; this.resumeFunction = resumeFunction; - this.allowFatal = allowFatal; } @Override @@ -90,10 +82,6 @@ public void onSuccess(T value) { @Override public void onError(Throwable e) { - if (!allowFatal && !(e instanceof Exception)) { - downstream.onError(e); - return; - } MaybeSource m; try { diff --git a/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeOnErrorXTest.java b/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeOnErrorXTest.java index f3a9b9345c..403d73db66 100644 --- a/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeOnErrorXTest.java +++ b/src/test/java/io/reactivex/rxjava3/internal/operators/maybe/MaybeOnErrorXTest.java @@ -98,22 +98,6 @@ public void onErrorResumeNext() { .assertResult(1); } - @Test - public void onExceptionResumeNext() { - Maybe.error(new TestException()) - .onExceptionResumeNext(Maybe.just(1)) - .test() - .assertResult(1); - } - - @Test - public void onExceptionResumeNextPassthrough() { - Maybe.error(new AssertionError()) - .onExceptionResumeNext(Maybe.just(1)) - .test() - .assertFailure(AssertionError.class); - } - @Test public void onErrorResumeNextFunctionThrows() { TestHelper.assertCompositeExceptions(Maybe.error(new TestException())