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