@@ -1743,16 +1743,10 @@ public static Observable<Long> interval(long initialDelay, long period, TimeUnit
1743
1743
*/
1744
1744
@SchedulerSupport(SchedulerSupport.CUSTOM)
1745
1745
public static Observable<Long> interval(long initialDelay, long period, TimeUnit unit, Scheduler scheduler) {
1746
- if (initialDelay < 0) {
1747
- initialDelay = 0L;
1748
- }
1749
- if (period < 0) {
1750
- period = 0L;
1751
- }
1752
1746
ObjectHelper.requireNonNull(unit, "unit is null");
1753
1747
ObjectHelper.requireNonNull(scheduler, "scheduler is null");
1754
1748
1755
- return RxJavaPlugins.onAssembly(new ObservableInterval(initialDelay, period, unit, scheduler));
1749
+ return RxJavaPlugins.onAssembly(new ObservableInterval(Math.max(0L, initialDelay), Math.max(0L, period) , unit, scheduler));
1756
1750
}
1757
1751
1758
1752
/**
@@ -1843,17 +1837,10 @@ public static Observable<Long> intervalRange(long start, long count, long initia
1843
1837
if (end < 0) {
1844
1838
throw new IllegalArgumentException("Overflow! start + count is bigger than Long.MAX_VALUE");
1845
1839
}
1846
-
1847
- if (initialDelay < 0) {
1848
- initialDelay = 0L;
1849
- }
1850
- if (period < 0) {
1851
- period = 0L;
1852
- }
1853
1840
ObjectHelper.requireNonNull(unit, "unit is null");
1854
1841
ObjectHelper.requireNonNull(scheduler, "scheduler is null");
1855
1842
1856
- return RxJavaPlugins.onAssembly(new ObservableIntervalRange(start, end, initialDelay, period, unit, scheduler));
1843
+ return RxJavaPlugins.onAssembly(new ObservableIntervalRange(start, end, Math.max(0L, initialDelay), Math.max(0L, period) , unit, scheduler));
1857
1844
}
1858
1845
1859
1846
/**
@@ -3226,13 +3213,10 @@ public static Observable<Long> timer(long delay, TimeUnit unit) {
3226
3213
*/
3227
3214
@SchedulerSupport(SchedulerSupport.CUSTOM)
3228
3215
public static Observable<Long> timer(long delay, TimeUnit unit, Scheduler scheduler) {
3229
- if (delay < 0) {
3230
- delay = 0L;
3231
- }
3232
3216
ObjectHelper.requireNonNull(unit, "unit is null");
3233
3217
ObjectHelper.requireNonNull(scheduler, "scheduler is null");
3234
3218
3235
- return RxJavaPlugins.onAssembly(new ObservableTimer(delay, unit, scheduler));
3219
+ return RxJavaPlugins.onAssembly(new ObservableTimer(Math.max( delay, 0L) , unit, scheduler));
3236
3220
}
3237
3221
3238
3222
/**
@@ -4701,12 +4685,8 @@ public final Observable<List<T>> buffer(int count, int skip) {
4701
4685
*/
4702
4686
@SchedulerSupport(SchedulerSupport.NONE)
4703
4687
public final <U extends Collection<? super T>> Observable<U> buffer(int count, int skip, Callable<U> bufferSupplier) {
4704
- if (count <= 0) {
4705
- throw new IllegalArgumentException("count > 0 required but it was " + count);
4706
- }
4707
- if (skip <= 0) {
4708
- throw new IllegalArgumentException("skip > 0 required but it was " + count);
4709
- }
4688
+ verifyPositive(count, "count");
4689
+ verifyPositive(skip, "skip");
4710
4690
ObjectHelper.requireNonNull(bufferSupplier, "bufferSupplier is null");
4711
4691
return RxJavaPlugins.onAssembly(new ObservableBuffer<T, U>(this, count, skip, bufferSupplier));
4712
4692
}
@@ -4965,9 +4945,7 @@ public final <U extends Collection<? super T>> Observable<U> buffer(
4965
4945
ObjectHelper.requireNonNull(unit, "unit is null");
4966
4946
ObjectHelper.requireNonNull(scheduler, "scheduler is null");
4967
4947
ObjectHelper.requireNonNull(bufferSupplier, "bufferSupplier is null");
4968
- if (count <= 0) {
4969
- throw new IllegalArgumentException("count > 0 required but it was " + count);
4970
- }
4948
+ verifyPositive(count, "count");
4971
4949
return RxJavaPlugins.onAssembly(new ObservableBufferTimed<T, U>(this, timespan, timespan, unit, scheduler, bufferSupplier, count, restartTimerOnMaxSize));
4972
4950
}
4973
4951
@@ -6529,8 +6507,10 @@ public final Observable<T> doOnSubscribe(Consumer<? super Disposable> onSubscrib
6529
6507
*/
6530
6508
@SchedulerSupport(SchedulerSupport.NONE)
6531
6509
public final Observable<T> doOnTerminate(final Action onTerminate) {
6532
- return doOnEach(Functions.emptyConsumer(), Functions.actionConsumer(onTerminate),
6533
- onTerminate, Functions.EMPTY_ACTION);
6510
+ ObjectHelper.requireNonNull(onTerminate, "onTerminate is null");
6511
+ return doOnEach(Functions.emptyConsumer(),
6512
+ Functions.actionConsumer(onTerminate), onTerminate,
6513
+ Functions.EMPTY_ACTION);
6534
6514
}
6535
6515
6536
6516
/**
@@ -6769,9 +6749,7 @@ public final <R> Observable<R> flatMap(Function<? super T, ? extends ObservableS
6769
6749
public final <R> Observable<R> flatMap(Function<? super T, ? extends ObservableSource<? extends R>> mapper,
6770
6750
boolean delayErrors, int maxConcurrency, int bufferSize) {
6771
6751
ObjectHelper.requireNonNull(mapper, "mapper is null");
6772
- if (maxConcurrency <= 0) {
6773
- throw new IllegalArgumentException("maxConcurrency > 0 required but it was " + maxConcurrency);
6774
- }
6752
+ verifyPositive(maxConcurrency, "maxConcurrency");
6775
6753
verifyPositive(bufferSize, "bufferSize");
6776
6754
if (this instanceof ScalarCallable) {
6777
6755
@SuppressWarnings("unchecked")
@@ -8255,7 +8233,7 @@ public final Observable<T> repeat() {
8255
8233
* <dd>{@code repeat} does not operate by default on a particular {@link Scheduler}.</dd>
8256
8234
* </dl>
8257
8235
*
8258
- * @param count
8236
+ * @param times
8259
8237
* the number of times the source ObservableSource items are repeated, a count of 0 will yield an empty
8260
8238
* sequence
8261
8239
* @return a Observable that repeats the sequence of items emitted by the source ObservableSource at most
@@ -8265,14 +8243,14 @@ public final Observable<T> repeat() {
8265
8243
* @see <a href="http://reactivex.io/documentation/operators/repeat.html">ReactiveX operators documentation: Repeat</a>
8266
8244
*/
8267
8245
@SchedulerSupport(SchedulerSupport.NONE)
8268
- public final Observable<T> repeat(long count ) {
8269
- if (count < 0) {
8270
- throw new IllegalArgumentException("count >= 0 required but it was " + count );
8246
+ public final Observable<T> repeat(long times ) {
8247
+ if (times < 0) {
8248
+ throw new IllegalArgumentException("times >= 0 required but it was " + times );
8271
8249
}
8272
- if (count == 0) {
8250
+ if (times == 0) {
8273
8251
return empty();
8274
8252
}
8275
- return RxJavaPlugins.onAssembly(new ObservableRepeat<T>(this, count ));
8253
+ return RxJavaPlugins.onAssembly(new ObservableRepeat<T>(this, times ));
8276
8254
}
8277
8255
8278
8256
/**
@@ -8466,9 +8444,7 @@ public final <R> Observable<R> replay(Function<? super Observable<T>, ? extends
8466
8444
*/
8467
8445
@SchedulerSupport(SchedulerSupport.CUSTOM)
8468
8446
public final <R> Observable<R> replay(Function<? super Observable<T>, ? extends ObservableSource<R>> selector, final int bufferSize, final long time, final TimeUnit unit, final Scheduler scheduler) {
8469
- if (bufferSize < 0) {
8470
- throw new IllegalArgumentException("bufferSize < 0");
8471
- }
8447
+ verifyPositive(bufferSize, "bufferSize");
8472
8448
ObjectHelper.requireNonNull(selector, "selector is null");
8473
8449
return ObservableReplay.multicastSelector(
8474
8450
ObservableInternalHelper.replayCallable(this, bufferSize, time, unit, scheduler), selector);
@@ -8680,9 +8656,7 @@ public final ConnectableObservable<T> replay(int bufferSize, long time, TimeUnit
8680
8656
*/
8681
8657
@SchedulerSupport(SchedulerSupport.CUSTOM)
8682
8658
public final ConnectableObservable<T> replay(final int bufferSize, final long time, final TimeUnit unit, final Scheduler scheduler) {
8683
- if (bufferSize < 0) {
8684
- throw new IllegalArgumentException("bufferSize < 0");
8685
- }
8659
+ verifyPositive(bufferSize, "bufferSize");
8686
8660
ObjectHelper.requireNonNull(unit, "unit is null");
8687
8661
ObjectHelper.requireNonNull(scheduler, "scheduler is null");
8688
8662
return ObservableReplay.create(this, time, unit, scheduler, bufferSize);
@@ -8861,14 +8835,14 @@ public final Observable<T> retry(BiPredicate<? super Integer, ? super Throwable>
8861
8835
* <dd>{@code retry} does not operate by default on a particular {@link Scheduler}.</dd>
8862
8836
* </dl>
8863
8837
*
8864
- * @param count
8838
+ * @param times
8865
8839
* number of retry attempts before failing
8866
8840
* @return the source ObservableSource modified with retry logic
8867
8841
* @see <a href="http://reactivex.io/documentation/operators/retry.html">ReactiveX operators documentation: Retry</a>
8868
8842
*/
8869
8843
@SchedulerSupport(SchedulerSupport.NONE)
8870
- public final Observable<T> retry(long count ) {
8871
- return retry(count , Functions.alwaysTrue());
8844
+ public final Observable<T> retry(long times ) {
8845
+ return retry(times , Functions.alwaysTrue());
8872
8846
}
8873
8847
8874
8848
/**
@@ -10108,7 +10082,7 @@ public final <R> Observable<R> switchMapDelayError(Function<? super T, ? extends
10108
10082
@SchedulerSupport(SchedulerSupport.NONE)
10109
10083
public final Observable<T> take(long count) {
10110
10084
if (count < 0) {
10111
- throw new IllegalArgumentException("count >= required but it was " + count);
10085
+ throw new IllegalArgumentException("count >= 0 required but it was " + count);
10112
10086
}
10113
10087
return RxJavaPlugins.onAssembly(new ObservableTake<T>(this, count));
10114
10088
}
@@ -11237,9 +11211,7 @@ public final Observable<List<T>> toList() {
11237
11211
*/
11238
11212
@SchedulerSupport(SchedulerSupport.NONE)
11239
11213
public final Observable<List<T>> toList(final int capacityHint) {
11240
- if (capacityHint <= 0) {
11241
- throw new IllegalArgumentException("capacityHint > 0 required but it was " + capacityHint);
11242
- }
11214
+ verifyPositive(capacityHint, "capacityHint");
11243
11215
return RxJavaPlugins.onAssembly(new ObservableToList<T, List<T>>(this, capacityHint));
11244
11216
}
11245
11217
@@ -11501,14 +11473,12 @@ public final Flowable<T> toFlowable(BackpressureStrategy strategy) {
11501
11473
Flowable<T> o = new FlowableFromObservable<T>(this);
11502
11474
11503
11475
switch (strategy) {
11504
- case BUFFER:
11505
- return o.onBackpressureBuffer();
11506
11476
case DROP:
11507
11477
return o.onBackpressureDrop();
11508
11478
case LATEST:
11509
11479
return o.onBackpressureLatest();
11510
11480
default:
11511
- return o;
11481
+ return o.onBackpressureBuffer() ;
11512
11482
}
11513
11483
}
11514
11484
@@ -11821,6 +11791,8 @@ public final Observable<Observable<T>> window(long timespan, long timeskip, Time
11821
11791
*/
11822
11792
@SchedulerSupport(SchedulerSupport.CUSTOM)
11823
11793
public final Observable<Observable<T>> window(long timespan, long timeskip, TimeUnit unit, Scheduler scheduler, int bufferSize) {
11794
+ verifyPositive(timespan, "timespan");
11795
+ verifyPositive(timeskip, "timeskip");
11824
11796
verifyPositive(bufferSize, "bufferSize");
11825
11797
ObjectHelper.requireNonNull(scheduler, "scheduler is null");
11826
11798
ObjectHelper.requireNonNull(unit, "unit is null");
@@ -12052,9 +12024,7 @@ public final Observable<Observable<T>> window(
12052
12024
verifyPositive(bufferSize, "bufferSize");
12053
12025
ObjectHelper.requireNonNull(scheduler, "scheduler is null");
12054
12026
ObjectHelper.requireNonNull(unit, "unit is null");
12055
- if (count <= 0) {
12056
- throw new IllegalArgumentException("count > 0 required but it was " + count);
12057
- }
12027
+ verifyPositive(count, "count");
12058
12028
return RxJavaPlugins.onAssembly(new ObservableWindowTimed<T>(this, timespan, timespan, unit, scheduler, count, bufferSize, restart));
12059
12029
}
12060
12030
0 commit comments