[
https://issues.apache.org/jira/browse/AMQ-6042?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15018821#comment-15018821
]
ASF subversion and git services commented on AMQ-6042:
------------------------------------------------------
Commit 4a27b72377bf8104b1a586bb26946c59508a3f26 in activemq's branch
refs/heads/master from [~tabish121]
[ https://git-wip-us.apache.org/repos/asf?p=activemq.git;h=4a27b72 ]
https://issues.apache.org/jira/browse/AMQ-6042
Apply fix and test from Martin Lichtin to preserve the rollback cause in
all ack modes.
> In ActiveMQMessageConsumer, always set rollback cause
> -----------------------------------------------------
>
> Key: AMQ-6042
> URL: https://issues.apache.org/jira/browse/AMQ-6042
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Reporter: Martin Lichtin
> Attachments: MessageListenerRedeliveryTest.java
>
>
> In ActiveMQMessageConsumer, currently the rollback cause is only set for the
> case auto- or individual-acks. However, it should also be set for the other
> cases, so that in the rollback() method it can be picked up when creating the
> poison ack.
> {code}
> if (isAutoAcknowledgeBatch() || isAutoAcknowledgeEach() ||
> session.isIndividualAcknowledge()) {
> // schedual redelivery and possible dlq processing
> md.setRollbackCause(e);
> rollback();
> } else {
> // Transacted or Client ack: Deliver the next message.
> afterMessageIsConsumed(md, false);
> }
> {code}
> I'd suggest to move md.setRollbackCause(e); to before the if().
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)