Skip to content

Commit 564c3dc

Browse files
artem-zinnatullinakarnokd
authored andcommitted
2.x: Check runnable == null in *Scheduler.schedule*(). (#5748)
* 2.x: Check runnable == null in *Scheduler.schedule*(). * "run is null". * sudo "run is null".
1 parent 0bab46d commit 564c3dc

File tree

3 files changed

+33
-6
lines changed

3 files changed

+33
-6
lines changed

src/main/java/io/reactivex/plugins/RxJavaPlugins.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,8 @@ public static Scheduler onNewThreadScheduler(@NonNull Scheduler defaultScheduler
446446
*/
447447
@NonNull
448448
public static Runnable onSchedule(@NonNull Runnable run) {
449+
ObjectHelper.requireNonNull(run, "run is null");
450+
449451
Function<? super Runnable, ? extends Runnable> f = onScheduleHandler;
450452
if (f == null) {
451453
return run;

src/test/java/io/reactivex/plugins/RxJavaPluginsTest.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1369,8 +1369,6 @@ public void subscribeActual(CompletableObserver t) {
13691369

13701370
assertNull(RxJavaPlugins.onAssembly((Maybe)null));
13711371

1372-
assertNull(RxJavaPlugins.onSchedule(null));
1373-
13741372
Maybe myb = new Maybe() {
13751373
@Override
13761374
public void subscribeActual(MaybeObserver t) {
@@ -1381,10 +1379,7 @@ public void subscribeActual(MaybeObserver t) {
13811379
assertSame(myb, RxJavaPlugins.onAssembly(myb));
13821380

13831381

1384-
assertNull(RxJavaPlugins.onSchedule(null));
1385-
13861382
Runnable action = Functions.EMPTY_RUNNABLE;
1387-
13881383
assertSame(action, RxJavaPlugins.onSchedule(action));
13891384

13901385
class AllSubscriber implements Subscriber, Observer, SingleObserver, CompletableObserver, MaybeObserver {

src/test/java/io/reactivex/schedulers/AbstractSchedulerTests.java

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -742,4 +742,34 @@ public void run() {
742742
assertSame(countDownRunnable, wrapper.getWrappedRunnable());
743743
disposable.dispose();
744744
}
745-
}
745+
746+
@Test
747+
public void scheduleDirectNullRunnable() {
748+
try {
749+
getScheduler().scheduleDirect(null);
750+
fail();
751+
} catch (NullPointerException npe) {
752+
assertEquals("run is null", npe.getMessage());
753+
}
754+
}
755+
756+
@Test
757+
public void scheduleDirectWithDelayNullRunnable() {
758+
try {
759+
getScheduler().scheduleDirect(null, 10, TimeUnit.MILLISECONDS);
760+
fail();
761+
} catch (NullPointerException npe) {
762+
assertEquals("run is null", npe.getMessage());
763+
}
764+
}
765+
766+
@Test
767+
public void schedulePeriodicallyDirectNullRunnable() {
768+
try {
769+
getScheduler().schedulePeriodicallyDirect(null, 5, 10, TimeUnit.MILLISECONDS);
770+
fail();
771+
} catch (NullPointerException npe) {
772+
assertEquals("run is null", npe.getMessage());
773+
}
774+
}
775+
}

0 commit comments

Comments
 (0)