[ https://issues.apache.org/jira/browse/CAMEL-4650?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13147551#comment-13147551 ]
Tarjei Huse commented on CAMEL-4650: ------------------------------------ Hi Babak, 1. Yes both routes are in the same context. 2. Yes the point is to consume from the same seda endpoint. Think of this endpoint as a buffer between processes that take differing amounts of time and should not happen sequentially. 3. I got an errorhandler for shorter errors like this: .onException(java.net.ConnectException.class, SolrServerException.class, SolrException.class) .log(LoggingLevel.ERROR,routeName+ ":Connection down") .maximumRedeliveries(4) .backOffMultiplier(1) .redeliveryDelay(redeliveryDelay) .to("log:SolrRouteError?showAll=true&showStackTrace=true&showHeaders=true&showException=true") .to(getSolrFailuresQueue()) .handled(true) .end() The problem is that on some errors the time it takes for a request can be quite long so the seda queue builds up. Maybe I should shut down the consuming route before starting the drainer - would that help? > 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 > > 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