[
https://issues.apache.org/jira/browse/AMQ-7464?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17078305#comment-17078305
]
ASF subversion and git services commented on AMQ-7464:
------------------------------------------------------
Commit aa03f295f523ab00d2b19d54a36f4140bef18d0b in activemq's branch
refs/heads/master from gtully
[ https://gitbox.apache.org/repos/asf?p=activemq.git;h=aa03f29 ]
AMQ-7464 - ensure message.copy before server session run dispatch
> ServerSession run does not copy message before dispatch; rollback delivered
> ack messageId can get corrupted by direct forward, leading to "Could not
> correlate acknowledgment with dispatched message" JMSException
> --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: AMQ-7464
> URL: https://issues.apache.org/jira/browse/AMQ-7464
> Project: ActiveMQ
> Issue Type: Bug
> Components: JCA Container, JMS client
> Affects Versions: 5.15.0
> Reporter: Gary Tully
> Assignee: Gary Tully
> Priority: Major
> Fix For: 5.16.0
>
>
> An MDB, that directly forwards its message can lead to unmatched acks on
> rollback.
> {code}
> .. onMessage(Message m) {
> producer.send(m);
> ..
> }{code}
> The root cause is ServerSession.run not doing a message copy before up call
> to the listener.
> An unmatched delivered ACK causes a broker error and JMS exception "Could not
> correlate acknowledgment with dispatched message".
> That error closes the connection which prevents normal rollback and
> redelivery processing.
> The fix is to copy, in the same way as a regular message consumer, such that
> the application is free to do what every it wants to the message.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)