Hi All, I'm probably doing something wrong/stupid, but I can't get the sjms (recent Camel, but same true for 2.25.2) to leave failed messages in the JMS topic (AMQ Artemis) after exception. This is what logged:
[ctiveMQ-client-global-threads)] TransactionErrorHandler WARN Transaction rollback (0x5cd1283) redelivered(false) for (MessageId: ID:bbaa590d-e975-11ea-9ad0-6c4b902fc0e1 on ExchangeId: ID-Kal030841-1598650245838-0-1) caught: null [ctiveMQ-client-global-threads)] TransactionErrorHandler WARN Transaction rollback (0x5cd1283) redelivered(false) for (MessageId: ID:bbaa590d-e975-11ea-9ad0-6c4b902fc0e1 on ExchangeId: ID-Kal030841-1598650245838-0-1) caught: null [ctiveMQ-client-global-threads)] TransactionErrorHandler WARN Transaction rollback (0x5cd1283) redelivered(false) for (MessageId: ID:bbaa590d-e975-11ea-9ad0-6c4b902fc0e1 on ExchangeId: ID-Kal030841-1598650245838-0-1) caught: null [ctiveMQ-client-global-threads)] TransactionErrorHandler ERROR Failed delivery for (MessageId: ID:bbaa590d-e975-11ea-9ad0-6c4b902fc0e1 on ExchangeId: ID-Kal030841-1598650245838-0-1). Exhausted after delivery attempt: 3 caught: java.lang.NullPointerException Message History (complete message history is disabled) --------------------------------------------------------------------------------------------------------------------------------------- RouteId ProcessorId Processor Elapsed (ms) [route1 ] [route1 ] [from[sjms://topic:topic:test?durableSubscriptionId=dmitr] [ 1999] ... [route1 ] [transacted1 ] [transacted ] [ 0] Stacktrace --------------------------------------------------------------------------------------------------------------------------------------- java.lang.NullPointerException: null at org.apache.camel.cdi.transaction.TransactionalJtaTransactionPolicy.hasActiveTransaction(TransactionalJtaTransactionPolicy.java:105) ~[camel-cdi-3.4.3.jar:3.4.3] at org.apache.camel.cdi.transaction.RequiredJtaTransactionPolicy.run(RequiredJtaTransactionPolicy.java:26) ~[camel-cdi-3.4.3.jar:3.4.3] at org.apache.camel.jta.TransactionErrorHandler.doInTransactionTemplate(TransactionErrorHandler.java:193) ~[camel-jta-3.4.3.jar:3.4.3] at org.apache.camel.jta.TransactionErrorHandler.processInTransaction(TransactionErrorHandler.java:144) ~[camel-jta-3.4.3.jar:3.4.3] at org.apache.camel.jta.TransactionErrorHandler.process(TransactionErrorHandler.java:108) ~[camel-jta-3.4.3.jar:3.4.3] at org.apache.camel.jta.TransactionErrorHandler.process(TransactionErrorHandler.java:117) ~[camel-jta-3.4.3.jar:3.4.3] at org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.redeliver(RedeliveryErrorHandler.java:766) ~[camel-base-3.4.3.jar:3.4.3] at org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:148) ~[camel-base-3.4.3.jar:3.4.3] at org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:60) ~[camel-base-3.4.3.jar:3.4.3] at org.apache.camel.processor.Pipeline.process(Pipeline.java:147) ~[camel-base-3.4.3.jar:3.4.3] at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:286) ~[camel-base-3.4.3.jar:3.4.3] at org.apache.camel.impl.engine.DefaultAsyncProcessorAwaitManager.process(DefaultAsyncProcessorAwaitManager.java:83) ~[camel-base-3.4.3.jar:3.4.3] at org.apache.camel.support.AsyncProcessorSupport.process(AsyncProcessorSupport.java:40) ~[camel-support-3.4.3.jar:3.4.3] at org.apache.camel.component.sjms.consumer.InOnlyMessageHandler.handleMessage(InOnlyMessageHandler.java:52) ~[camel-sjms-3.4.3.jar:3.4.3] at org.apache.camel.component.sjms.consumer.AbstractMessageHandler.onMessage(AbstractMessageHandler.java:81) ~[camel-sjms-3.4.3.jar:3.4.3] at org.apache.activemq.artemis.jms.client.JMSMessageListenerWrapper.onMessage(JMSMessageListenerWrapper.java:110) ~[artemis-jms-client-2.14.0.jar:2.14.0] at org.apache.activemq.artemis.core.client.impl.ClientConsumerImpl.callOnMessage(ClientConsumerImpl.java:1030) ~[artemis-core-client-2.14.0.jar:2.14.0] So, it looks like rollback is kicked off, but when I restart the process message is gone from the JMS topic. Sample reproducer (generated using -DarchetypeArtifactId=camel-archetype-cdi as described here https://camel.apache.org/components/latest/others/cdi.html ) is here https://github.com/zeppelinux/CamelCDISjmsTest Please have a look. Cheers, Dmitry