[ https://issues.apache.org/jira/browse/CAMEL-4650?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13150411#comment-13150411 ]
Babak Vahdat commented on CAMEL-4650: ------------------------------------- I think that the problem/challenge resides in the fact that camel-core doesn't realize that there's already another route consuming from the same URI (in this case the Seda consumer with multipleConsumers *not* enabled) if one of the routes is not autoEnabled and the other one is already up and consuming and one starts that not-autoEnabled route afterwards through the provided API. However if both routes are already autoEnabled (which is the default) then this case gets caught correctly at the startup of the camel context: {code} org.apache.camel.FailedToStartRouteException: Failed to start route route2 because of Multiple consumers for the same endpoint is not allowed: Endpoint[seda://foo?concurrentConsumers=5] at org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRouteConsumers(DefaultCamelContext.java:1916) at org.apache.camel.impl.DefaultCamelContext.doStartRouteConsumers(DefaultCamelContext.java:1892) at org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:1820) at org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:1604) at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1494) at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1381) at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:60) at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1359) at org.apache.camel.ContextTestSupport.startCamelContext(ContextTestSupport.java:171) at org.apache.camel.ContextTestSupport.setUp(ContextTestSupport.java:114) at junit.framework.TestCase.runBare(TestCase.java:132) at org.apache.camel.TestSupport.runBare(TestSupport.java:59) at junit.framework.TestResult$1.protect(TestResult.java:110) at junit.framework.TestResult.runProtected(TestResult.java:128) at junit.framework.TestResult.run(TestResult.java:113) at junit.framework.TestCase.run(TestCase.java:124) at junit.framework.TestSuite.runTest(TestSuite.java:232) at junit.framework.TestSuite.run(TestSuite.java:227) at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) {code} > NPE when using SEDA route and attaching an extra consumer > --------------------------------------------------------- > > Key: CAMEL-4650 > URL: https://issues.apache.org/jira/browse/CAMEL-4650 > Project: Camel > Issue Type: Bug > Components: camel-core > Affects Versions: 2.8.2 > Environment: Java 6, Camel 2.8.2, Centos 4. > Reporter: Tarjei Huse > Assignee: Claus Ibsen > > I'm trying to construct a system for moving some seda queues over to > ActiveMQ during system shutdown. What I did was create a Route that > connects to some of my seda queues and then drains the queue to activemq. > Basicly I got two routes, the drainer: > from("seda:" + sedaId + "?size=1000") > .routeId(routeName + > sedaIs).noAutoStartup().to(activeMQFailuresQueue); > And the main route: > from("seda:" + sedaId + "?size=1000") > .routeId(routeName + sedaIs).to(SomeProcessor); > Now, sometimes the main route stalls for various reasons I need to > restart the jvm process it is running in, so I start the first route. > But when trying this in production, I got: > java.lang.NullPointerException > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:78) > at > org.apache.camel.component.seda.SedaConsumer.sendToConsumers(SedaConsumer.java:210) > at > org.apache.camel.component.seda.SedaConsumer.doRun(SedaConsumer.java:155) > at > org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:129) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:619) > Bvahdat added a comment: > just a very tiny pointer: > Looking at the source it seems that the > SedaEndpoint.getConsumerMulticastProcessor() method returns 'null' causing > the NPE, as the condition: > multicastStarted == false || consumerMulticastProcessor == null > is true. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira