Closed
Description
With 1.0.5, I'm getting an IllegalStateException
from OperatorMerge
. This is repeatable for me but involves a big input data set being processed in chunks using flatMap/onSubscribe so I can't give you a quick test case yet. Hopefully just this description is enough otherwise I'll try and distill a test. I think it is happening close to completion.
java.lang.IllegalStateException: This instance has been unsubscribed and the queue is no longer usable.
at rx.internal.util.RxRingBuffer.onNext(RxRingBuffer.java:346)
at rx.internal.operators.OperatorMerge$InnerSubscriber.enqueue(OperatorMerge.java:721)
at rx.internal.operators.OperatorMerge$InnerSubscriber.emit(OperatorMerge.java:698)
at rx.internal.operators.OperatorMerge$InnerSubscriber.onNext(OperatorMerge.java:586)
at rx.internal.operators.OperatorSubscribeOn$1$1$1.onNext(OperatorSubscribeOn.java:76)
at rx.internal.operators.OperatorMerge$MergeSubscriber.handleScalarSynchronousObservableWithRequestLimits(OperatorMerge.java:280)
at rx.internal.operators.OperatorMerge$MergeSubscriber.handleScalarSynchronousObservable(OperatorMerge.java:243)
at rx.internal.operators.OperatorMerge$MergeSubscriber.onNext(OperatorMerge.java:176)
at rx.internal.operators.OperatorMerge$MergeSubscriber.onNext(OperatorMerge.java:120)
at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:55)
at rx.internal.operators.OperatorMerge$MergeSubscriber.handleScalarSynchronousObservableWithRequestLimits(OperatorMerge.java:280)
at rx.internal.operators.OperatorMerge$MergeSubscriber.handleScalarSynchronousObservable(OperatorMerge.java:243)
at rx.internal.operators.OperatorMerge$MergeSubscriber.onNext(OperatorMerge.java:176)
at rx.internal.operators.OperatorMerge$MergeSubscriber.onNext(OperatorMerge.java:120)
at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:55)
at rx.internal.operators.NotificationLite.accept(NotificationLite.java:150)
at rx.internal.operators.OperatorMerge$MergeSubscriber.drainScalarValueQueue(OperatorMerge.java:396)
at rx.internal.operators.OperatorMerge$MergeSubscriber.drainQueuesIfNeeded(OperatorMerge.java:343)
at rx.internal.operators.OperatorMerge$MergeSubscriber.access$500(OperatorMerge.java:120)
at rx.internal.operators.OperatorMerge$MergeProducer.request(OperatorMerge.java:549)
at rx.Subscriber.request(Subscriber.java:130)
at rx.internal.operators.OperatorMerge$MergeSubscriber.drainQueuesIfNeeded(OperatorMerge.java:350)
at rx.internal.operators.OperatorMerge$MergeSubscriber.access$500(OperatorMerge.java:120)
at rx.internal.operators.OperatorMerge$MergeProducer.request(OperatorMerge.java:549)
at rx.Subscriber.request(Subscriber.java:130)
at rx.internal.operators.OperatorMerge$MergeSubscriber.drainQueuesIfNeeded(OperatorMerge.java:350)
at rx.internal.operators.OperatorMerge$MergeSubscriber.access$500(OperatorMerge.java:120)
at rx.internal.operators.OperatorMerge$MergeProducer.request(OperatorMerge.java:549)
at rx.internal.operators.OperatorSubscribeOn$1$1$1$1$1.call(OperatorSubscribeOn.java:94)
at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:47)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: rx.exceptions.OnErrorThrowable$OnNextValue: OnError while emitting onNext value: au.gov.amsa.ais.Timestamped.class
at rx.exceptions.OnErrorThrowable.addValueAsLastCause(OnErrorThrowable.java:98)
at rx.internal.operators.OperatorMap$1.onNext(OperatorMap.java:58)
... 27 more