Skip to content

Commit 71945f3

Browse files
hluhovskyiakarnokd
authored andcommitted
Fix NPE when debouncing empty source (#6559)
1 parent b40a892 commit 71945f3

File tree

4 files changed

+26
-2
lines changed

4 files changed

+26
-2
lines changed

src/main/java/io/reactivex/internal/operators/flowable/FlowableDebounce.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,9 @@ public void onComplete() {
119119
if (!DisposableHelper.isDisposed(d)) {
120120
@SuppressWarnings("unchecked")
121121
DebounceInnerSubscriber<T, U> dis = (DebounceInnerSubscriber<T, U>)d;
122-
dis.emit();
122+
if (dis != null) {
123+
dis.emit();
124+
}
123125
DisposableHelper.dispose(debouncer);
124126
downstream.onComplete();
125127
}

src/main/java/io/reactivex/internal/operators/observable/ObservableDebounce.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,9 @@ public void onComplete() {
112112
if (d != DisposableHelper.DISPOSED) {
113113
@SuppressWarnings("unchecked")
114114
DebounceInnerObserver<T, U> dis = (DebounceInnerObserver<T, U>)d;
115-
dis.emit();
115+
if (dis != null) {
116+
dis.emit();
117+
}
116118
DisposableHelper.dispose(debouncer);
117119
downstream.onComplete();
118120
}

src/test/java/io/reactivex/internal/operators/flowable/FlowableDebounceTest.java

+10
Original file line numberDiff line numberDiff line change
@@ -547,4 +547,14 @@ public void timedError() {
547547
.test()
548548
.assertFailure(TestException.class);
549549
}
550+
551+
@Test
552+
public void debounceOnEmpty() {
553+
Flowable.empty().debounce(new Function<Object, Publisher<Object>>() {
554+
@Override
555+
public Publisher<Object> apply(Object o) {
556+
return Flowable.just(new Object());
557+
}
558+
}).subscribe();
559+
}
550560
}

src/test/java/io/reactivex/internal/operators/observable/ObservableDebounceTest.java

+10
Original file line numberDiff line numberDiff line change
@@ -506,4 +506,14 @@ public void timedError() {
506506
.test()
507507
.assertFailure(TestException.class);
508508
}
509+
510+
@Test
511+
public void debounceOnEmpty() {
512+
Observable.empty().debounce(new Function<Object, ObservableSource<Object>>() {
513+
@Override
514+
public ObservableSource<Object> apply(Object o) {
515+
return Observable.just(new Object());
516+
}
517+
}).subscribe();
518+
}
509519
}

0 commit comments

Comments
 (0)