reactor.core.util.Exceptions$DuplicateOnSubscribeException: Spec. Rule 2.12 - Subscriber.onSubscribe MUST NOT be called more than once (based on object equality)

GitHub | nebhale | 10 months ago
  1. 0

    Exception thrown from Stream.yield causes DuplicateOnSubscribeException

    GitHub | 10 months ago | nebhale
    reactor.core.util.Exceptions$DuplicateOnSubscribeException: Spec. Rule 2.12 - Subscriber.onSubscribe MUST NOT be called more than once (based on object equality)

    Root Cause Analysis

    1. reactor.core.util.Exceptions$DuplicateOnSubscribeException

      Spec. Rule 2.12 - Subscriber.onSubscribe MUST NOT be called more than once (based on object equality)

      at reactor.core.util.Exceptions.duplicateOnSubscribeException()
    2. reactor.core.util
      DeferredSubscription.set
      1. reactor.core.util.Exceptions.duplicateOnSubscribeException(Exceptions.java:133)[reactor-core-2.5.0.BUILD-20160209.140333-334.jar:na]
      2. reactor.core.util.BackpressureUtils.reportSubscriptionSet(BackpressureUtils.java:440)[reactor-core-2.5.0.BUILD-20160209.140333-334.jar:na]
      3. reactor.core.util.DeferredSubscription.set(DeferredSubscription.java:62)[reactor-core-2.5.0.BUILD-20160209.140333-334.jar:na]
      3 frames
    3. reactor.core.publisher
      FluxPublishOn$PublishOnPipeline.onSubscribe
      1. reactor.core.publisher.FluxPublishOn$PublishOnPipeline.onSubscribe(FluxPublishOn.java:131)[reactor-core-2.5.0.BUILD-20160209.140333-334.jar:na]
      1 frame
    4. reactor.core.util
      EmptySubscription.error
      1. reactor.core.util.EmptySubscription.error(EmptySubscription.java:34)[reactor-core-2.5.0.BUILD-20160209.140333-334.jar:na]
      1 frame
    5. reactor.core.publisher
      FluxYieldingEmitter.subscribe
      1. reactor.core.publisher.FluxYieldingEmitter.subscribe(FluxYieldingEmitter.java:51)[reactor-core-2.5.0.BUILD-20160209.140333-334.jar:na]
      1 frame
    6. reactor.rx
      StreamSource.subscribe
      1. reactor.rx.StreamSource.subscribe(StreamSource.java:69)[reactor-stream-2.5.0.BUILD-20160209.172643-328.jar:na]
      1 frame
    7. reactor.core.util
      ScalarSubscription.trySubscribeScalarMap
      1. reactor.core.util.ScalarSubscription.trySubscribeScalarMap(ScalarSubscription.java:93)[reactor-core-2.5.0.BUILD-20160209.140333-334.jar:na]
      1 frame
    8. reactor.core.publisher
      FluxFlatMap.subscribe
      1. reactor.core.publisher.FluxFlatMap.subscribe(FluxFlatMap.java:93)[reactor-core-2.5.0.BUILD-20160209.140333-334.jar:na]
      1 frame
    9. reactor.rx
      StreamSource.subscribe
      1. reactor.rx.StreamSource.subscribe(StreamSource.java:69)[reactor-stream-2.5.0.BUILD-20160209.172643-328.jar:na]
      1 frame
    10. reactor.core.publisher
      WorkQueueProcessor$QueueSubscriberLoop.run
      1. reactor.core.publisher.FluxPublishOn$SourceSubscribeTask.run(FluxPublishOn.java:318)[reactor-core-2.5.0.BUILD-20160209.140333-334.jar:na]
      2. reactor.core.publisher.SchedulerGroup$TaskSubscriber.onNext(SchedulerGroup.java:1072)[reactor-core-2.5.0.BUILD-20160209.140333-334.jar:na]
      3. reactor.core.publisher.SchedulerGroup$TaskSubscriber.onNext(SchedulerGroup.java:1054)[reactor-core-2.5.0.BUILD-20160209.140333-334.jar:na]
      4. reactor.core.publisher.WorkQueueProcessor$QueueSubscriberLoop.run(WorkQueueProcessor.java:849)[reactor-core-2.5.0.BUILD-20160209.140333-334.jar:na]
      4 frames
    11. Java RT
      Thread.run
      1. java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[na:1.8.0_73]
      2. java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[na:1.8.0_73]
      3. java.lang.Thread.run(Thread.java:745)[na:1.8.0_73]
      3 frames