File tree Expand file tree Collapse file tree 2 files changed +22
-0
lines changed
main/java/io/reactivex/internal/operators/flowable
test/java/io/reactivex/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) {
65
65
downstream .onNext (t );
66
66
BackpressureHelper .produced (this , 1 );
67
67
} else {
68
+ upstream .cancel ();
68
69
onError (new MissingBackpressureException ("could not emit value due to lack of requests" ));
69
70
}
70
71
}
Original file line number Diff line number Diff line change 13
13
14
14
package io .reactivex .internal .operators .flowable ;
15
15
16
+ import static org .junit .Assert .*;
17
+
16
18
import org .junit .Test ;
17
19
import org .reactivestreams .Publisher ;
18
20
19
21
import io .reactivex .*;
22
+ import io .reactivex .exceptions .MissingBackpressureException ;
20
23
import io .reactivex .functions .Function ;
24
+ import io .reactivex .subjects .PublishSubject ;
25
+ import io .reactivex .subscribers .TestSubscriber ;
21
26
22
27
public class FlowableOnBackpressureErrorTest {
23
28
@@ -50,4 +55,20 @@ public Object apply(Flowable<Integer> f) throws Exception {
50
55
}
51
56
}, false , 1 , 1 , 1 );
52
57
}
58
+
59
+ @ Test
60
+ public void overflowCancels () {
61
+ PublishSubject <Integer > ps = PublishSubject .create ();
62
+
63
+ TestSubscriber <Integer > ts = ps .toFlowable (BackpressureStrategy .ERROR )
64
+ .test (0L );
65
+
66
+ assertTrue (ps .hasObservers ());
67
+
68
+ ps .onNext (1 );
69
+
70
+ assertFalse (ps .hasObservers ());
71
+
72
+ ts .assertFailure (MissingBackpressureException .class );
73
+ }
53
74
}
You can’t perform that action at this time.
0 commit comments