-
Notifications
You must be signed in to change notification settings - Fork 7.6k
Closed
Description
The following code will throw a NullPointerException.
Observable.from((String) null).toList().toBlockingObservable().single();Exception in thread "main" java.lang.NullPointerException at java.util.concurrent.ConcurrentLinkedQueue.checkNotNull(ConcurrentLinkedQueue.java:807) at java.util.concurrent.ConcurrentLinkedQueue.offer(ConcurrentLinkedQueue.java:326) at java.util.concurrent.ConcurrentLinkedQueue.add(ConcurrentLinkedQueue.java:296) at rx.operators.OperationToObservableList$ToObservableList$1.onNext(OperationToObservableList.java:62) at rx.operators.OperationToObservableIterable$ToObservableIterable.onSubscribe(OperationToObservableIterable.java:46) at rx.Observable.subscribe(Observable.java:236) at rx.operators.OperationToObservableList$ToObservableList.onSubscribe(OperationToObservableList.java:57) at rx.Observable.subscribe(Observable.java:236) at rx.operators.OperationMaterialize$MaterializeObservable.onSubscribe(OperationMaterialize.java:57) at rx.Observable.subscribe(Observable.java:236) at rx.operators.OperationToIterator.toIterator(OperationToIterator.java:47) at rx.observables.BlockingObservable.getIterator(BlockingObservable.java:172) at rx.observables.BlockingObservable$2.iterator(BlockingObservable.java:353) at rx.observables.BlockingObservable._singleOrDefault(BlockingObservable.java:66) at rx.observables.BlockingObservable.single(BlockingObservable.java:278) at rx.Test.main(Test.java:25)
The cause is rx.operators.OperationToObservableList https://github.com/Netflix/RxJava/blob/069ae42843822b846d450b38a4aa5039182e121f/rxjava-core/src/main/java/rx/operators/OperationToObservableList.java#L58 uses ConcurrentLinkedQueue to cache the values but ConcurrentLinkedQueue rejects null value.
Is ArrayList or LinkedList enough here?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels