File tree 2 files changed +32
-2
lines changed
main/java/rx/internal/operators
test/java/rx/internal/operators
2 files changed +32
-2
lines changed Original file line number Diff line number Diff line change @@ -111,8 +111,11 @@ public OperatorZip(Func9 f) {
111
111
public Subscriber <? super Observable []> call (final Subscriber <? super R > child ) {
112
112
final Zip <R > zipper = new Zip <R >(child , zipFunction );
113
113
final ZipProducer <R > producer = new ZipProducer <R >(zipper );
114
- child .setProducer (producer );
115
114
final ZipSubscriber subscriber = new ZipSubscriber (child , zipper , producer );
115
+
116
+ child .add (subscriber );
117
+ child .setProducer (producer );
118
+
116
119
return subscriber ;
117
120
}
118
121
@@ -124,7 +127,6 @@ private final class ZipSubscriber extends Subscriber<Observable[]> {
124
127
final ZipProducer <R > producer ;
125
128
126
129
public ZipSubscriber (Subscriber <? super R > child , Zip <R > zipper , ZipProducer <R > producer ) {
127
- super (child );
128
130
this .child = child ;
129
131
this .zipper = zipper ;
130
132
this .producer = producer ;
Original file line number Diff line number Diff line change @@ -1308,4 +1308,32 @@ public Integer call(Integer t1, Integer t2) {
1308
1308
ts .assertNoErrors ();
1309
1309
ts .assertReceivedOnNext (Arrays .asList (11 ));
1310
1310
}
1311
+
1312
+ @ SuppressWarnings ("cast" )
1313
+ @ Test
1314
+ public void testZipObservableObservableBackpressure () {
1315
+ @ SuppressWarnings ("unchecked" )
1316
+ Observable <Integer >[] osArray = new Observable [] {
1317
+ Observable .range (0 , 10 ),
1318
+ Observable .range (0 , 10 )
1319
+ };
1320
+
1321
+ Observable <Observable <Integer >> os = (Observable <Observable <Integer >>) Observable .from (osArray );
1322
+ Observable <Integer > o1 = Observable .zip (os , new FuncN <Integer >() {
1323
+ @ Override
1324
+ public Integer call (Object ... a ) {
1325
+ return 0 ;
1326
+ }
1327
+ });
1328
+
1329
+ TestSubscriber <Integer > sub1 = TestSubscriber .create (5 );
1330
+
1331
+ o1 .subscribe (sub1 );
1332
+
1333
+ sub1 .requestMore (5 );
1334
+
1335
+ sub1 .assertValueCount (10 );
1336
+ sub1 .assertNoErrors ();
1337
+ sub1 .assertCompleted ();
1338
+ }
1311
1339
}
You can’t perform that action at this time.
0 commit comments