File tree Expand file tree Collapse file tree 2 files changed +22
-0
lines changed
main/java/io/reactivex/rxjava3/internal/operators/flowable
test/java/io/reactivex/rxjava3/internal/operators/flowable Expand file tree Collapse file tree 2 files changed +22
-0
lines changed Original file line number Diff line number Diff line change @@ -65,6 +65,7 @@ public void onNext(T t) {
6565 downstream .onNext (t );
6666 BackpressureHelper .produced (this , 1 );
6767 } else {
68+ upstream .cancel ();
6869 onError (new MissingBackpressureException ("could not emit value due to lack of requests" ));
6970 }
7071 }
Original file line number Diff line number Diff line change 1313
1414package io .reactivex .rxjava3 .internal .operators .flowable ;
1515
16+ import static org .junit .Assert .*;
17+
1618import org .junit .Test ;
1719import org .reactivestreams .Publisher ;
1820
1921import io .reactivex .rxjava3 .core .*;
22+ import io .reactivex .rxjava3 .exceptions .MissingBackpressureException ;
2023import io .reactivex .rxjava3 .functions .Function ;
24+ import io .reactivex .rxjava3 .subjects .PublishSubject ;
25+ import io .reactivex .rxjava3 .subscribers .TestSubscriber ;
2126import io .reactivex .rxjava3 .testsupport .TestHelper ;
2227
2328public class FlowableOnBackpressureErrorTest extends RxJavaTest {
@@ -51,4 +56,20 @@ public Object apply(Flowable<Integer> f) throws Exception {
5156 }
5257 }, false , 1 , 1 , 1 );
5358 }
59+
60+ @ Test
61+ public void overflowCancels () {
62+ PublishSubject <Integer > ps = PublishSubject .create ();
63+
64+ TestSubscriber <Integer > ts = ps .toFlowable (BackpressureStrategy .ERROR )
65+ .test (0L );
66+
67+ assertTrue (ps .hasObservers ());
68+
69+ ps .onNext (1 );
70+
71+ assertFalse (ps .hasObservers ());
72+
73+ ts .assertFailure (MissingBackpressureException .class );
74+ }
5475}
You can’t perform that action at this time.
0 commit comments