[ 
https://issues.apache.org/jira/browse/CAMEL-20521?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17829849#comment-17829849
 ] 

Claus Ibsen commented on CAMEL-20521:
-------------------------------------

This will be fixed by spring-jms, so we are awaiting they will do releases

> camel-amqp - AMQP publisher application is losing messages with local JMS 
> transaction enabled
> ---------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-20521
>                 URL: https://issues.apache.org/jira/browse/CAMEL-20521
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-amqp
>    Affects Versions: 4.4.0
>            Reporter: Luigi De Masi
>            Assignee: Luigi De Masi
>            Priority: Major
>             Fix For: 4.x
>
>         Attachments: screenshot-1.png, screenshot-2.png
>
>
> camel-amqp with local transaction enabled loses messages because to invoke 
> the commit, it uses a spring-jms routine that catch and ignore a couple of 
> exceptions that occurs and should not be ignored:
> In {{org.apache.camel.component.jms.JmsConfiguration.CamelJmsTemplate}} :
> !screenshot-1.png!
> that calls {{org.springframework.jms.support.JmsUtils}}
> !screenshot-2.png!
> In the comment it says that {{jakarta.jms.TransactionInProgressException}} 
> and {{jakarta.jms.IllegalStateException}} can only happen in case of a JTA 
> transaction but it can happens 
> also in case of connection problems:
> {code:java}
> javax.jms.IllegalStateException: The Session is closed
>       at org.apache.qpid.jms.JmsSession.checkClosed(JmsSession.java:1113)
>       at org.apache.qpid.jms.JmsSession.getTransacted(JmsSession.java:213)
>       at 
> org.messaginghub.pooled.jms.JmsPoolSession.getTransacted(JmsPoolSession.java:256)
>       at 
> nl.ns.hip.cci.jms.CamelJmsTemplate.doSendToDestination(CamelJmsTemplate.java:94)
>       at 
> nl.ns.hip.cci.jms.CamelJmsTemplate.lambda$send$0(CamelJmsTemplate.java:33)
>       at 
> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:504)
>       at nl.ns.hip.cci.jms.CamelJmsTemplate.send(CamelJmsTemplate.java:31)
>       at 
> org.apache.camel.component.jms.JmsProducer.doSend(JmsProducer.java:425)
>       at 
> org.apache.camel.component.jms.JmsProducer.processInOnly(JmsProducer.java:392)
>       at 
> org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:159)
>       at 
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:172)
>       at 
> org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.doRun(RedeliveryErrorHandler.java:818)
>       at 
> org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.run(RedeliveryErrorHandler.java:726)
>       at 
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.schedule(DefaultReactiveExecutor.java:181)
>       at 
> org.apache.camel.impl.engine.DefaultReactiveExecutor.scheduleMain(DefaultReactiveExecutor.java:59)
>       at org.apache.camel.processor.Pipeline.process(Pipeline.java:165)
>       at 
> org.apache.camel.impl.engine.CamelInternalProcessor.process(CamelInternalProcessor.java:392)
>       at 
> org.apache.camel.component.seda.SedaConsumer.sendToConsumers(SedaConsumer.java:269)
>       at 
> org.apache.camel.component.seda.SedaConsumer.doRun(SedaConsumer.java:187)
>       at 
> org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:130)
>       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)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to