[
https://issues.apache.org/activemq/browse/AMQ-2034?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=48699#action_48699
]
Gary Tully commented on AMQ-2034:
---------------------------------
r734393. Modified the code a little to only use the synchronization if in an XA
tx, possibly this could be if not in localTx such that this will allow the
managed case to work,
we need a test case that shows the managed usage from the tck if this change
breaks the tck.
> consumer close with active XA transaction results in
> java.lang.IllegalArgumentException: The subscription does not exist: ...
> -----------------------------------------------------------------------------------------------------------------------------
>
> Key: AMQ-2034
> URL: https://issues.apache.org/activemq/browse/AMQ-2034
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.2.0
> Environment: XA spring-jms consumer.close before XA transaction
> completion
> Reporter: Gary Tully
> Assignee: Gary Tully
> Fix For: 5.3.0
>
>
> consumer.close removes consumer from broker, later xa transaction commit
> results in exception as beforeEnd ack of messages fails with IllegalState:
> {code}
> javax.jms.JMSException: The subscription does not exist:
> ID:XXXX.dd-52108-1229084857402-0:37:13:1
> at
> org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49)
> at
> org.apache.activemq.ActiveMQConnection.onAsyncException(ActiveMQConnection.java:1692)
> at
> org.apache.activemq.ActiveMQConnection$2$1.run(ActiveMQConnection.java:1637)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
> at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.IllegalArgumentException: The subscription does not
> exist: ID:XXXX.dd-52108-1229084857402-0:37:13:1
> at
> org.apache.activemq.broker.region.AbstractRegion.acknowledge(AbstractRegion.java:364)
> at
> org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBroker.java:470)
> at
> org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:194)
> at
> org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:73)
> at
> org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:84)
> at
> org.apache.activemq.broker.TransportConnection.processMessageAck(TransportConnection.java:442)
> at org.apache.activemq.command.MessageAck.visit(MessageAck.java:196)
> at
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:291)
> at
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
> at
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
> at
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:143)
> at
> org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:206)
> at
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
> at
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:196)
> at
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:183)
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.