Reputation: 11
I'm trying to handle InterruptedException which I generate in my route.
onException(InterruptedException.class)
.log("log InterruptedException")
.handled(true);
onException(RuntimeCamelException.class)
.log("log RuntimeCamelException")
.handled(true);
onException(Exception.class)
.log("log Exception")
.handled(true);
from("activemq:queue:QUEUE")
.routeId("STARTROUTE")
.throwException(InterruptedException.class, "MyTestExceptionMessage");
But I can't catch the exception in onException routes. I can see this WARN in the logs for 7 times and that's it. (Camel tries to process an AMQ message for 7 times if it wasn't handle).
2024-04-12T12:20:50.610 | WARN | Camel (OPENAPI) thread #2 - JmsConsumer[OPENAPI.REQ] | org.apache.camel.component.jms.EndpointMessageListener | Execution of JMS message listener failed. Caused by: [org.apache.camel.RuntimeCamelException - java.lang.InterruptedException: MyTestExceptionMessage] | exception_message: java.lang.InterruptedException: MyTestExceptionMessage | exception_stacktrace: org.apache.camel.RuntimeCamelException: java.lang.InterruptedException: MyTestExceptionMessage
at org.apache.camel.RuntimeCamelException.wrapRuntimeCamelException(RuntimeCamelException.java:51)
at org.apache.camel.component.jms.EndpointMessageListener$EndpointMessageListenerAsyncCallback.done(EndpointMessageListener.java:217)
at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:136)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:736)
at org.springframework.jms.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:696)
at org.springframework.jms.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:674)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:331)
at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:246)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1237)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1227)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:1120)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: java.lang.InterruptedException: MyTestExceptionMessage
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at org.apache.camel.processor.ThrowExceptionProcessor.process(ThrowExceptionProcessor.java:66)
at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.doRun(RedeliveryErrorHandler.java:829)
at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.run(RedeliveryErrorHandler.java:737)
at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:193)
at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:64)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:185)
at org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:398)
at org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83)
at org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:41)
at org.apache.camel.component.jms.EndpointMessageListener.onMessage(EndpointMessageListener.java:132)
... 11 more
How can I catch InterruptedException in camel routes?
Upvotes: 0
Views: 40