Hynek Cihlar created CAMEL-5210: ----------------------------------- Summary: 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
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