You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2017/08/01 20:12:00 UTC
[jira] [Commented] (CAMEL-11615) WorkerPool is null for
auto-configured RxJava-based application
[ https://issues.apache.org/jira/browse/CAMEL-11615?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16109663#comment-16109663 ]
Claus Ibsen commented on CAMEL-11615:
-------------------------------------
Yeah thanks for testing. Its because the reactive stream component is not started before the @PostConstruct code is run, where you call the subscribe method, which then runs the flow - where the thread pool is null because its not started yet.
I guess it may be nicer to let the subscribe method "remember" it should start only after the component has been started, so it startup after all the other stuff such as Camel has been started.
This is more safter as you can have a race condition where the stream flow will trigger some stream events you then route into camel which then happens to be starting up at the same time.
> WorkerPool is null for auto-configured RxJava-based application
> ---------------------------------------------------------------
>
> Key: CAMEL-11615
> URL: https://issues.apache.org/jira/browse/CAMEL-11615
> Project: Camel
> Issue Type: Bug
> Components: camel-reactive-streams
> Affects Versions: 2.19.1
> Environment: OS: OSX 10.11.6
> JDK: Oracle 1.8.0_141
> MVN: 3.5.0
> Reporter: Qaiser Abbasi
> Fix For: 2.20.0, 2.19.3
>
>
> In https://github.com/qabbasi/reactive-camel-demo I'm using the camel-reactive-streams-starter project to create a application based on RxJava2. Currently I'm getting a NPE during runtime.
> I also tried to test the sample route inside https://github.com/apache/camel/tree/master/examples/camel-example-reactive-streams, but unfortunately this also results in the same exception:
> java.lang.NullPointerException: null
> at org.apache.camel.component.reactive.streams.engine.CamelSubscription.checkAndFlush(CamelSubscription.java:123) ~[camel-reactive-streams-2.19.1.jar:2.19.1]
> at org.apache.camel.component.reactive.streams.engine.CamelSubscription.publish(CamelSubscription.java:247) ~[camel-reactive-streams-2.19.1.jar:2.19.1]
> at org.apache.camel.component.reactive.streams.engine.CamelPublisher.publish(CamelPublisher.java:100) ~[camel-reactive-streams-2.19.1.jar:2.19.1]
> at org.apache.camel.component.reactive.streams.engine.DefaultCamelReactiveStreamsService.sendCamelExchange(DefaultCamelReactiveStreamsService.java:123) ~[camel-reactive-streams-2.19.1.jar:2.19.1]
> at org.apache.camel.component.reactive.streams.ReactiveStreamsProducer.process(ReactiveStreamsProducer.java:44) ~[camel-reactive-streams-2.19.1.jar:2.19.1]
> at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:145) ~[camel-core-2.19.1.jar:2.19.1]
> at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77) ~[camel-core-2.19.1.jar:2.19.1]
> at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:541) ~[camel-core-2.19.1.jar:2.19.1]
> at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:198) [camel-core-2.19.1.jar:2.19.1]
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:120) ~[camel-core-2.19.1.jar:2.19.1]
> at org.apache.camel.processor.Pipeline.process(Pipeline.java:83) ~[camel-core-2.19.1.jar:2.19.1]
> at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:198) [camel-core-2.19.1.jar:2.19.1]
> at org.apache.camel.component.timer.TimerConsumer.sendTimerExchange(TimerConsumer.java:197) [camel-core-2.19.1.jar:2.19.1]
> at org.apache.camel.component.timer.TimerConsumer$1.run(TimerConsumer.java:79) [camel-core-2.19.1.jar:2.19.1]
> at java.util.TimerThread.mainLoop(Timer.java:555) [na:1.8.0_141]
> at java.util.TimerThread.run(Timer.java:505) [na:1.8.0_141]
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)