IndividualDeadLetterStrategy.isDLQ() returns true if Prefix is set to empty String
Issue
- We are attempting to configure individual DLQs with a suffixed naming pattern. A queue "MY.SAMPLE" would have the DLQ "MY.SAMPLE.DLQ". Using either of the following within a
does not achieve the desired outcome:
<deadLetterStrategy>
<!-- set an empty prefix -->
<individualDeadLetterStrategy useQueueForQueueMessages="true"
queuePrefix=""
queueSuffix=".DLQ"></individualDeadLetterStrategy>
</deadLetterStrategy>
<deadLetterStrategy>
<individualDeadLetterStrategy useQueueForQueueMessages="true"
queuePrefix="#null"
queueSuffix=".DLQ"></individualDeadLetterStrategy>
</deadLetterStrategy>
Setting an empty prefix results in the "parent" queue being misidentified as a DLQ.
Given the isDLQ() method is used to determine behavior in at least the following class, this would seem to be concerning org.apache.activemq.broker.region.Queue
Setting a null prefix results in the DLQs having the string null as a prefix (i.e. nullMY.SAMPLE.DLQ), see
IndividualDeadLetterStrategy.createDestination(Message,String,String,boolean,Subscription)
Environment
- Red Hat A-MQ
- 6.2
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.