[ 
https://issues.apache.org/jira/browse/AMQ-3236?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gary Tully reopened AMQ-3236:
-----------------------------


intermittent hang of: org.apache.activemq.bugs.AMQ2021Test
shows concurrency issue with pending inflights to other topic consumers.
The properties hashmap can get corrupt leading to an infinite loop:
{code}"ActiveMQ Transport: tcp:///127.0.0.1:58927@58921" daemon prio=5 
tid=7fd5b79c6800 nid=0x119872000 runnable [119870000]
   java.lang.Thread.State: RUNNABLE
        at java.util.HashMap.putAllForCreate(HashMap.java:437)
        at java.util.HashMap.<init>(HashMap.java:225)
        at org.apache.activemq.command.Message.copy(Message.java:136)
        at 
org.apache.activemq.command.ActiveMQMessage.copy(ActiveMQMessage.java:68)
        at 
org.apache.activemq.command.ActiveMQTextMessage.copy(ActiveMQTextMessage.java:57)
        at 
org.apache.activemq.command.ActiveMQTextMessage.copy(ActiveMQTextMessage.java:52)
        at 
org.apache.activemq.broker.region.RegionBroker.sendToDeadLetterQueue(RegionBroker.java:714)
        at 
org.apache.activemq.broker.BrokerFilter.sendToDeadLetterQueue(BrokerFilter.java:313)
        at 
org.apache.activemq.advisory.AdvisoryBroker.sendToDeadLetterQueue(AdvisoryBroker.java:421)
        at 
org.apache.activemq.broker.BrokerFilter.sendToDeadLetterQueue(BrokerFilter.java:313)
        at 
org.apache.activemq.broker.BrokerFilter.sendToDeadLetterQueue(BrokerFilter.java:313)
        at 
org.apache.activemq.broker.MutableBrokerFilter.sendToDeadLetterQueue(MutableBrokerFilter.java:325)
        at 
org.apache.activemq.broker.region.PrefetchSubscription.sendToDLQ(PrefetchSubscription.java:510)
        at 
org.apache.activemq.broker.region.PrefetchSubscription.acknowledge(PrefetchSubscription.java:383)
        - locked <7df495f68> (a java.lang.Object)
        at 
org.apache.activemq.broker.region.AbstractRegion.acknowledge(AbstractRegion.java:426)
        at 
org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBroker.java:447)
        at 
org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:82)
        at 
org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:82)
        at 
org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:287)
        at 
org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:92)
        at 
org.apache.activemq.broker.TransportConnection.processMessageAck(TransportConnection.java:478){code}
                
> In the case of DLQ processing due to an exception from onMessage, provide the 
> exception string as a message property 
> ---------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3236
>                 URL: https://issues.apache.org/jira/browse/AMQ-3236
>             Project: ActiveMQ
>          Issue Type: New Feature
>          Components: Broker
>    Affects Versions: 5.4.2
>            Reporter: Gary Tully
>            Assignee: Gary Tully
>              Labels: DLQ, Exception, Redelivery
>             Fix For: 5.5.0
>
>
> When an application throws an exception from on message, redelivery kicks in 
> through session rollback. If the policy dictates that the message should be 
> sent to the DLQ, the exception cause is lost. 
> The enhancement would pipe the exception with the internal poison ack such 
> that it can be included as a message property in the message in the DLQ.
> Some context in the answer 
> http://stackoverflow.com/questions/5069733/preservation-of-exception-cause-when-redelivering-failed-activemq-jms-messages-pr/5109361#5109361

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to