[ https://issues.apache.org/jira/browse/CAMEL-5210?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen reassigned CAMEL-5210: ---------------------------------- Assignee: Claus Ibsen > Loop causes NullPointerException on error > ----------------------------------------- > > Key: CAMEL-5210 > URL: https://issues.apache.org/jira/browse/CAMEL-5210 > Project: Camel > Issue Type: Bug > Components: camel-core > Affects Versions: 2.9.2 > Reporter: Hynek Cihlar > Assignee: Claus Ibsen > > The following context will cause NullPointerException. > <routeContext id="myCamelContext" > xmlns="http://camel.apache.org/schema/spring"> > <route> > <from uri="jms:myQueue"/> > <onException> > <exception>org.xml.sax.SAXParseException</exception> > <redeliveryPolicy maximumRedeliveries="2"/> > <handled><constant>true</constant></handled> > <to > uri="log:camelfatal?showAll=true&multiline=true&level=ERROR"/> > </onException> > <loop copy="true"> > <constant>3</constant> > <inOnly uri="smtp://you_can_leave_this_unchanged"/> > </loop> > </route> > </routeContext> > The callstack on the NullPointerException: > Daemon Thread [Camel (appServerCamelContext) thread #1 - > JmsConsumer[emailOutbox]] (Suspended (exception NullPointerException)) > > DefaultErrorHandler(RedeliveryErrorHandler).processErrorHandler(Exchange, > AsyncCallback, RedeliveryErrorHandler$RedeliveryData) line: 262 > DefaultErrorHandler(RedeliveryErrorHandler).process(Exchange, > AsyncCallback) line: 223 > RouteContextProcessor.processNext(Exchange, AsyncCallback) line: 45 > RouteContextProcessor(DelegateAsyncProcessor).process(Exchange, > AsyncCallback) line: 90 > DefaultChannel.process(Exchange, AsyncCallback) line: 304 > AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) > line: 73 > LoopProcessor(DelegateAsyncProcessor).processNext(Exchange, > AsyncCallback) line: 99 > LoopProcessor.process(Exchange, AsyncCallback, AtomicInteger, > AtomicInteger) line: 103 > LoopProcessor.process(Exchange, AsyncCallback) line: 74 > AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) > line: 73 > InstrumentationProcessor(DelegateAsyncProcessor).processNext(Exchange, > AsyncCallback) line: 99 > InstrumentationProcessor(DelegateAsyncProcessor).process(Exchange, > AsyncCallback) line: 90 > InstrumentationProcessor.process(Exchange, AsyncCallback) line: 71 > AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) > line: 73 > TraceInterceptor(DelegateAsyncProcessor).processNext(Exchange, > AsyncCallback) line: 99 > TraceInterceptor(DelegateAsyncProcessor).process(Exchange, > AsyncCallback) line: 90 > TraceInterceptor.process(Exchange, AsyncCallback) line: 91 > AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) > line: 73 > > DefaultErrorHandler(RedeliveryErrorHandler).processErrorHandler(Exchange, > AsyncCallback, RedeliveryErrorHandler$RedeliveryData) line: 333 > DefaultErrorHandler(RedeliveryErrorHandler).process(Exchange, > AsyncCallback) line: 223 > RouteContextProcessor.processNext(Exchange, AsyncCallback) line: 45 > RouteContextProcessor(DelegateAsyncProcessor).process(Exchange, > AsyncCallback) line: 90 > DefaultChannel.process(Exchange, AsyncCallback) line: 304 > RouteContextProcessor.processNext(Exchange, AsyncCallback) line: 45 > RouteContextProcessor(DelegateAsyncProcessor).process(Exchange, > AsyncCallback) line: 90 > UnitOfWorkProcessor.processAsync(Exchange, AsyncCallback, UnitOfWork) > line: 150 > UnitOfWorkProcessor.process(Exchange, AsyncCallback) line: 117 > RouteInflightRepositoryProcessor.processNext(Exchange, AsyncCallback) > line: 50 > > RouteInflightRepositoryProcessor(DelegateAsyncProcessor).process(Exchange, > AsyncCallback) line: 90 > AsyncProcessorHelper.process(AsyncProcessor, Exchange, AsyncCallback) > line: 73 > InstrumentationProcessor(DelegateAsyncProcessor).processNext(Exchange, > AsyncCallback) line: 99 > InstrumentationProcessor(DelegateAsyncProcessor).process(Exchange, > AsyncCallback) line: 90 > InstrumentationProcessor.process(Exchange, AsyncCallback) line: 71 > AsyncProcessorHelper.process(AsyncProcessor, Exchange) line: 99 > InstrumentationProcessor(DelegateAsyncProcessor).process(Exchange) > line: 86 > EndpointMessageListener.onMessage(Message) line: 104 > > DefaultJmsMessageListenerContainer(AbstractMessageListenerContainer).doInvokeListener(MessageListener, > Message) line: 560 > > DefaultJmsMessageListenerContainer(AbstractMessageListenerContainer).invokeListener(Session, > Message) line: 498 > > DefaultJmsMessageListenerContainer(AbstractMessageListenerContainer).doExecuteListener(Session, > Message) line: 467 > > DefaultJmsMessageListenerContainer(AbstractPollingMessageListenerContainer).doReceiveAndExecute(Object, > Session, MessageConsumer, TransactionStatus) line: 325 > > DefaultJmsMessageListenerContainer(AbstractPollingMessageListenerContainer).receiveAndExecute(Object, > Session, MessageConsumer) line: 263 > > DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener() > line: 1058 > > DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop() > line: 1050 > DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run() line: > 947 > ThreadPoolExecutor$Worker.runTask(Runnable) line: 886 > ThreadPoolExecutor$Worker.run() line: 908 > Thread.run() line: 662 -- 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