@@ -110,7 +110,7 @@ public static <T, R> Flowable<R> combineLatest(Function<Object[], ? extends R> c
110
110
public static <T , R > Flowable <R > combineLatest (Publisher <? extends T >[] sources , Function <Object [], ? extends R > combiner , int bufferSize ) {
111
111
Objects .requireNonNull (sources , "sources is null" );
112
112
Objects .requireNonNull (combiner , "combiner is null" );
113
- validateBufferSize (bufferSize );
113
+ validateBufferSize (bufferSize , "bufferSize" );
114
114
if (sources .length == 0 ) {
115
115
return empty ();
116
116
}
@@ -128,7 +128,7 @@ public static <T, R> Flowable<R> combineLatest(Iterable<? extends Publisher<? ex
128
128
public static <T , R > Flowable <R > combineLatest (Iterable <? extends Publisher <? extends T >> sources , Function <Object [], ? extends R > combiner , int bufferSize ) {
129
129
Objects .requireNonNull (sources , "sources is null" );
130
130
Objects .requireNonNull (combiner , "combiner is null" );
131
- validateBufferSize (bufferSize );
131
+ validateBufferSize (bufferSize , "bufferSize" );
132
132
return new FlowableCombineLatest <T , R >(sources , combiner , bufferSize , false );
133
133
}
134
134
@@ -149,7 +149,7 @@ public static <T, R> Flowable<R> combineLatestDelayError(Function<Object[], ? ex
149
149
public static <T , R > Flowable <R > combineLatestDelayError (Publisher <? extends T >[] sources , Function <Object [], ? extends R > combiner , int bufferSize ) {
150
150
Objects .requireNonNull (sources , "sources is null" );
151
151
Objects .requireNonNull (combiner , "combiner is null" );
152
- validateBufferSize (bufferSize );
152
+ validateBufferSize (bufferSize , "bufferSize" );
153
153
if (sources .length == 0 ) {
154
154
return empty ();
155
155
}
@@ -167,7 +167,7 @@ public static <T, R> Flowable<R> combineLatestDelayError(Iterable<? extends Publ
167
167
public static <T , R > Flowable <R > combineLatestDelayError (Iterable <? extends Publisher <? extends T >> sources , Function <Object [], ? extends R > combiner , int bufferSize ) {
168
168
Objects .requireNonNull (sources , "sources is null" );
169
169
Objects .requireNonNull (combiner , "combiner is null" );
170
- validateBufferSize (bufferSize );
170
+ validateBufferSize (bufferSize , "bufferSize" );
171
171
return new FlowableCombineLatest <T , R >(sources , combiner , bufferSize , true );
172
172
}
173
173
@@ -447,7 +447,7 @@ public static <T> Flowable<T> concatEager(Iterable<? extends Publisher<? extends
447
447
public static <T > Flowable <T > concatEager (Iterable <? extends Publisher <? extends T >> sources , int maxConcurrency , int prefetch ) {
448
448
return new FlowableConcatMapEager (new FlowableFromIterable (sources ), Functions .identity (), maxConcurrency , prefetch , ErrorMode .IMMEDIATE );
449
449
}
450
-
450
+
451
451
@ BackpressureSupport (BackpressureKind .FULL )
452
452
@ SchedulerSupport (SchedulerSupport .NONE )
453
453
public static <T > Flowable <T > concatDelayError (Iterable <? extends Publisher <? extends T >> sources ) {
@@ -1037,7 +1037,7 @@ public static <T> Flowable<T> never() {
1037
1037
@ SchedulerSupport (SchedulerSupport .NONE )
1038
1038
public static Flowable <Integer > range (int start , int count ) {
1039
1039
if (count < 0 ) {
1040
- throw new IllegalArgumentException ("count >= required but it was " + count );
1040
+ throw new IllegalArgumentException ("count >= 0 required but it was " + count );
1041
1041
} else
1042
1042
if (count == 0 ) {
1043
1043
return empty ();
@@ -1069,7 +1069,7 @@ public static <T> Flowable<Boolean> sequenceEqual(Publisher<? extends T> p1, Pub
1069
1069
Objects .requireNonNull (p1 , "p1 is null" );
1070
1070
Objects .requireNonNull (p2 , "p2 is null" );
1071
1071
Objects .requireNonNull (isEqual , "isEqual is null" );
1072
- validateBufferSize (bufferSize );
1072
+ validateBufferSize (bufferSize , "bufferSize" );
1073
1073
return new FlowableSequenceEqual <T >(p1 , p2 , isEqual , bufferSize );
1074
1074
}
1075
1075
@@ -1126,9 +1126,9 @@ public static <T, D> Flowable<T> using(Supplier<? extends D> resourceSupplier, F
1126
1126
return new FlowableUsing <T , D >(resourceSupplier , sourceSupplier , disposer , eager );
1127
1127
}
1128
1128
1129
- private static void validateBufferSize (int bufferSize ) {
1129
+ private static void validateBufferSize (int bufferSize , String paramName ) {
1130
1130
if (bufferSize <= 0 ) {
1131
- throw new IllegalArgumentException ("bufferSize > 0 required but it was " + bufferSize );
1131
+ throw new IllegalArgumentException (paramName + " > 0 required but it was " + bufferSize );
1132
1132
}
1133
1133
}
1134
1134
@@ -1260,7 +1260,7 @@ public static <T, R> Flowable<R> zipArray(Function<? super Object[], ? extends R
1260
1260
return empty ();
1261
1261
}
1262
1262
Objects .requireNonNull (zipper , "zipper is null" );
1263
- validateBufferSize (bufferSize );
1263
+ validateBufferSize (bufferSize , "bufferSize" );
1264
1264
return new FlowableZip <T , R >(sources , null , zipper , bufferSize , delayError );
1265
1265
}
1266
1266
@@ -1271,7 +1271,7 @@ public static <T, R> Flowable<R> zipIterable(Function<? super Object[], ? extend
1271
1271
Iterable <? extends Publisher <? extends T >> sources ) {
1272
1272
Objects .requireNonNull (zipper , "zipper is null" );
1273
1273
Objects .requireNonNull (sources , "sources is null" );
1274
- validateBufferSize (bufferSize );
1274
+ validateBufferSize (bufferSize , "bufferSize" );
1275
1275
return new FlowableZip <T , R >(null , sources , zipper , bufferSize , delayError );
1276
1276
}
1277
1277
@@ -1344,7 +1344,6 @@ public List<T> get() {
1344
1344
@ BackpressureSupport (BackpressureKind .FULL )
1345
1345
@ SchedulerSupport (SchedulerSupport .NONE )
1346
1346
public final <U extends Collection <? super T >> Flowable <U > buffer (int count , int skip , Supplier <U > bufferSupplier ) {
1347
- Objects .requireNonNull (bufferSupplier , "bufferSupplier is null" );
1348
1347
return new FlowableBuffer <T , U >(this , count , skip , bufferSupplier );
1349
1348
}
1350
1349
@@ -1622,6 +1621,10 @@ public final <R> Flowable<R> concatMapEager(Function<? super T, ? extends Publis
1622
1621
1623
1622
public final <R > Flowable <R > concatMapEager (Function <? super T , ? extends Publisher <? extends R >> mapper ,
1624
1623
int maxConcurrency , int prefetch ) {
1624
+ if (maxConcurrency <= 0 ) {
1625
+ throw new IllegalArgumentException ("maxConcurrency > 0 required but it was " + maxConcurrency );
1626
+ }
1627
+ validateBufferSize (prefetch , "prefetch" );
1625
1628
return new FlowableConcatMapEager <T , R >(this , mapper , maxConcurrency , prefetch , ErrorMode .IMMEDIATE );
1626
1629
}
1627
1630
@@ -2063,7 +2066,7 @@ public final Flowable<T> filter(Predicate<? super T> predicate) {
2063
2066
2064
2067
@ BackpressureSupport (BackpressureKind .PASS_THROUGH )
2065
2068
@ SchedulerSupport (SchedulerSupport .NONE )
2066
- public final Flowable <T > finallyDo (Runnable onFinally ) {
2069
+ public final Flowable <T > doAfterTerminate (Runnable onFinally ) {
2067
2070
return doOnEach (Functions .emptyConsumer (), Functions .emptyConsumer (), Functions .emptyRunnable (), onFinally );
2068
2071
}
2069
2072
@@ -2113,7 +2116,7 @@ public final <R> Flowable<R> flatMap(Function<? super T, ? extends Publisher<? e
2113
2116
if (maxConcurrency <= 0 ) {
2114
2117
throw new IllegalArgumentException ("maxConcurrency > 0 required but it was " + maxConcurrency );
2115
2118
}
2116
- validateBufferSize (bufferSize );
2119
+ validateBufferSize (bufferSize , "bufferSize" );
2117
2120
return new FlowableFlatMap <T , R >(this , mapper , delayErrors , maxConcurrency , bufferSize );
2118
2121
}
2119
2122
@@ -2308,7 +2311,7 @@ public final <K, V> Flowable<GroupedFlowable<K, V>> groupBy(Function<? super T,
2308
2311
boolean delayError , int bufferSize ) {
2309
2312
Objects .requireNonNull (keySelector , "keySelector is null" );
2310
2313
Objects .requireNonNull (valueSelector , "valueSelector is null" );
2311
- validateBufferSize (bufferSize );
2314
+ validateBufferSize (bufferSize , "bufferSize" );
2312
2315
2313
2316
return new FlowableGroupBy <T , K , V >(this , keySelector , valueSelector , bufferSize , delayError );
2314
2317
}
@@ -2418,7 +2421,7 @@ public final Flowable<T> observeOn(Scheduler scheduler, boolean delayError) {
2418
2421
@ SchedulerSupport (SchedulerSupport .CUSTOM )
2419
2422
public final Flowable <T > observeOn (Scheduler scheduler , boolean delayError , int bufferSize ) {
2420
2423
Objects .requireNonNull (scheduler , "scheduler is null" );
2421
- validateBufferSize (bufferSize );
2424
+ validateBufferSize (bufferSize , "bufferSize" );
2422
2425
return new FlowableObserveOn <T >(this , scheduler , delayError , bufferSize );
2423
2426
}
2424
2427
@@ -2461,7 +2464,7 @@ public final Flowable<T> onBackpressureBuffer(int bufferSize, boolean delayError
2461
2464
@ BackpressureSupport (BackpressureKind .SPECIAL )
2462
2465
@ SchedulerSupport (SchedulerSupport .NONE )
2463
2466
public final Flowable <T > onBackpressureBuffer (int bufferSize , boolean delayError , boolean unbounded ) {
2464
- validateBufferSize (bufferSize );
2467
+ validateBufferSize (bufferSize , "bufferSize" );
2465
2468
return new FlowableOnBackpressureBuffer <T >(this , bufferSize , unbounded , delayError , Functions .emptyRunnable ());
2466
2469
}
2467
2470
@@ -2569,15 +2572,15 @@ public final <R> Flowable<R> publish(Function<? super Flowable<T>, ? extends Pub
2569
2572
@ BackpressureSupport (BackpressureKind .FULL )
2570
2573
@ SchedulerSupport (SchedulerSupport .NONE )
2571
2574
public final <R > Flowable <R > publish (Function <? super Flowable <T >, ? extends Publisher <R >> selector , int bufferSize ) {
2572
- validateBufferSize (bufferSize );
2575
+ validateBufferSize (bufferSize , "bufferSize" );
2573
2576
Objects .requireNonNull (selector , "selector is null" );
2574
2577
return FlowablePublish .create (this , selector , bufferSize );
2575
2578
}
2576
2579
2577
2580
@ BackpressureSupport (BackpressureKind .FULL )
2578
2581
@ SchedulerSupport (SchedulerSupport .NONE )
2579
2582
public final ConnectableFlowable <T > publish (int bufferSize ) {
2580
- validateBufferSize (bufferSize );
2583
+ validateBufferSize (bufferSize , "bufferSize" );
2581
2584
return FlowablePublish .create (this , bufferSize );
2582
2585
}
2583
2586
@@ -3041,7 +3044,7 @@ public final Flowable<T> skipLast(long time, TimeUnit unit, Scheduler scheduler,
3041
3044
public final Flowable <T > skipLast (long time , TimeUnit unit , Scheduler scheduler , boolean delayError , int bufferSize ) {
3042
3045
Objects .requireNonNull (unit , "unit is null" );
3043
3046
Objects .requireNonNull (scheduler , "scheduler is null" );
3044
- validateBufferSize (bufferSize );
3047
+ validateBufferSize (bufferSize , "bufferSize" );
3045
3048
// the internal buffer holds pairs of (timestamp, value) so double the default buffer size
3046
3049
int s = bufferSize << 1 ;
3047
3050
return new FlowableSkipLastTimed <T >(this , time , unit , scheduler , s , delayError );
@@ -3218,7 +3221,7 @@ public final <R> Flowable<R> switchMap(Function<? super T, ? extends Publisher<?
3218
3221
}
3219
3222
return ScalarXMap .scalarXMap (v , mapper );
3220
3223
}
3221
- validateBufferSize (bufferSize );
3224
+ validateBufferSize (bufferSize , "bufferSize" );
3222
3225
return new FlowableSwitchMap <T , R >(this , mapper , bufferSize );
3223
3226
}
3224
3227
@@ -3288,7 +3291,7 @@ public final Flowable<T> takeLast(long count, long time, TimeUnit unit, Schedule
3288
3291
public final Flowable <T > takeLast (long count , long time , TimeUnit unit , Scheduler scheduler , boolean delayError , int bufferSize ) {
3289
3292
Objects .requireNonNull (unit , "unit is null" );
3290
3293
Objects .requireNonNull (scheduler , "scheduler is null" );
3291
- validateBufferSize (bufferSize );
3294
+ validateBufferSize (bufferSize , "bufferSize" );
3292
3295
if (count < 0 ) {
3293
3296
throw new IndexOutOfBoundsException ("count >= 0 required but it was " + count );
3294
3297
}
@@ -3823,7 +3826,7 @@ public final Flowable<Flowable<T>> window(long count, long skip, int bufferSize)
3823
3826
if (count <= 0 ) {
3824
3827
throw new IllegalArgumentException ("count > 0 required but it was " + count );
3825
3828
}
3826
- validateBufferSize (bufferSize );
3829
+ validateBufferSize (bufferSize , "bufferSize" );
3827
3830
return new FlowableWindow <T >(this , count , skip , bufferSize );
3828
3831
}
3829
3832
@@ -3842,7 +3845,7 @@ public final Flowable<Flowable<T>> window(long timespan, long timeskip, TimeUnit
3842
3845
@ BackpressureSupport (BackpressureKind .ERROR )
3843
3846
@ SchedulerSupport (SchedulerSupport .CUSTOM )
3844
3847
public final Flowable <Flowable <T >> window (long timespan , long timeskip , TimeUnit unit , Scheduler scheduler , int bufferSize ) {
3845
- validateBufferSize (bufferSize );
3848
+ validateBufferSize (bufferSize , "bufferSize" );
3846
3849
Objects .requireNonNull (scheduler , "scheduler is null" );
3847
3850
Objects .requireNonNull (unit , "unit is null" );
3848
3851
return new FlowableWindowTimed <T >(this , timespan , timeskip , unit , scheduler , Long .MAX_VALUE , bufferSize , false );
@@ -3894,7 +3897,7 @@ public final Flowable<Flowable<T>> window(long timespan, TimeUnit unit,
3894
3897
public final Flowable <Flowable <T >> window (
3895
3898
long timespan , TimeUnit unit , Scheduler scheduler ,
3896
3899
long count , boolean restart , int bufferSize ) {
3897
- validateBufferSize (bufferSize );
3900
+ validateBufferSize (bufferSize , "bufferSize" );
3898
3901
Objects .requireNonNull (scheduler , "scheduler is null" );
3899
3902
Objects .requireNonNull (unit , "unit is null" );
3900
3903
if (count <= 0 ) {
0 commit comments