File tree 2 files changed +22
-2
lines changed
main/java/rx/internal/operators
test/java/rx/internal/operators
2 files changed +22
-2
lines changed Original file line number Diff line number Diff line change @@ -72,11 +72,13 @@ private static final class ObserveOnSubscriber<T> extends Subscriber<T> {
72
72
= AtomicLongFieldUpdater .newUpdater (ObserveOnSubscriber .class , "counter" );
73
73
74
74
public ObserveOnSubscriber (Scheduler scheduler , Subscriber <? super T > subscriber ) {
75
- super (subscriber );
76
75
this .observer = subscriber ;
77
76
this .recursiveScheduler = scheduler .createWorker ();
78
77
this .scheduledUnsubscribe = new ScheduledUnsubscribe (recursiveScheduler );
79
- subscriber .add (scheduledUnsubscribe );
78
+ add (scheduledUnsubscribe );
79
+
80
+ subscriber .add (recursiveScheduler );
81
+ subscriber .add (this );
80
82
}
81
83
82
84
@ Override
Original file line number Diff line number Diff line change 40
40
import rx .Observable ;
41
41
import rx .Observer ;
42
42
import rx .Scheduler ;
43
+ import rx .Subscription ;
43
44
import rx .exceptions .TestException ;
44
45
import rx .functions .Action0 ;
45
46
import rx .functions .Action1 ;
@@ -389,4 +390,21 @@ public void testDelayedErrorDeliveryWhenSafeSubscriberUnsubscribes() {
389
390
inOrder .verify (o , never ()).onNext (anyInt ());
390
391
inOrder .verify (o , never ()).onCompleted ();
391
392
}
393
+
394
+ @ Test
395
+ public void testAfterUnsubscribeCalledThenObserverOnNextNeverCalled () {
396
+ final TestScheduler testScheduler = new TestScheduler ();
397
+ final Observer <Integer > observer = mock (Observer .class );
398
+ final Subscription subscription = Observable .from (1 , 2 , 3 )
399
+ .observeOn (testScheduler )
400
+ .subscribe (observer );
401
+ subscription .unsubscribe ();
402
+ testScheduler .advanceTimeBy (1 , TimeUnit .SECONDS );
403
+
404
+ final InOrder inOrder = inOrder (observer );
405
+
406
+ inOrder .verify (observer , never ()).onNext (anyInt ());
407
+ inOrder .verify (observer , never ()).onError (any (Exception .class ));
408
+ inOrder .verify (observer , never ()).onCompleted ();
409
+ }
392
410
}
You can’t perform that action at this time.
0 commit comments