Skip to content

[2.x] IllegalStateException on Observable.timer with 0 milliseconds #4926

Closed
@nhaarman

Description

@nhaarman
  • Library version 2.0.3

The following test occasionally fails (about 200 out of 1000 fail):

@Test
fun test() {
    var t: Throwable? = null
    RxJavaPlugins.setErrorHandler { t = it }
    Observable.timer(0L, MILLISECONDS).blockingFirst()
    t?.let { throw it }
}

Stacktrace:

java.lang.IllegalStateException: Disposable already set!

	at io.reactivex.internal.disposables.DisposableHelper.reportDisposableSet(DisposableHelper.java:144)
	at io.reactivex.internal.disposables.DisposableHelper.setOnce(DisposableHelper.java:70)
	at io.reactivex.internal.operators.observable.ObservableTimer$IntervalOnceObserver.setResource(ObservableTimer.java:74)
	at io.reactivex.internal.operators.observable.ObservableTimer.subscribeActual(ObservableTimer.java:40)
	at io.reactivex.Observable.subscribe(Observable.java:10514)
	at io.reactivex.Observable.blockingFirst(Observable.java:4535)
	at myapp.MyTest.test(MyTest.kt:15)

Whenever the test fails, IntervalOnceObserver#setResource is called after it is disposed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions