From 51bd12a05843f094e40ce14fbe8e935b88e36525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Karnok?= Date: Fri, 24 Mar 2017 18:04:37 +0100 Subject: [PATCH] 1.x: fix Completable.onErrorResumeNext unsubscribe not propagated --- src/main/java/rx/Completable.java | 1 + .../operators/CompletableOnErrorXTest.java | 63 +++++++++++++++++++ 2 files changed, 64 insertions(+) create mode 100644 src/test/java/rx/internal/operators/CompletableOnErrorXTest.java diff --git a/src/main/java/rx/Completable.java b/src/main/java/rx/Completable.java index 536509b39a..1fb6ad1f49 100644 --- a/src/main/java/rx/Completable.java +++ b/src/main/java/rx/Completable.java @@ -1729,6 +1729,7 @@ public final Completable onErrorResumeNext(final Func1 ps = PublishSubject.create(); + + AssertableSubscriber as = ps.toCompletable() + .onErrorResumeNext(new Func1() { + @Override + public Completable call(Throwable e) { + return Completable.complete(); + } + }) + .test(); + + assertTrue(ps.hasObservers()); + + as.unsubscribe(); + + assertFalse("Still subscribed!", ps.hasObservers()); + } + + @Test + public void completeUnsubscribe() { + PublishSubject ps = PublishSubject.create(); + + AssertableSubscriber as = ps.toCompletable() + .onErrorComplete() + .test(); + + assertTrue(ps.hasObservers()); + + as.unsubscribe(); + + assertFalse("Still subscribed!", ps.hasObservers()); + } +}