Alvin Kwekel created CAMEL-13750:
------------------------------------

             Summary: Incoming JMSCorrelationID is passed along when 
useMessageIDAsCorrelationID
                 Key: CAMEL-13750
                 URL: https://issues.apache.org/jira/browse/CAMEL-13750
             Project: Camel
          Issue Type: Bug
          Components: camel-activemq, camel-jms
    Affects Versions: 2.24.1
            Reporter: Alvin Kwekel


 
{noformat}
+-+            +-+            +-+
| | +-> Q1 +-> | | +-> Q3 +-> | |
|A|            |B|            |C|
| | <-+ Q2 <-+ | | <-+ Q4 <-+ | |
+-+            +-+            +-+{noformat}
 JMS request goes from A to B to C and the reply back from C to B to A.

A useMessageIDAsCorrelationID=false
B useMessageIDAsCorrelationID=true
C useMessageIDAsCorrelationID=false

The JMSCorrelationID assigned by A is passed along to C via Camel message 
headers when useMessageIDAsCorrelationID is set on B's request. B is expecting 
the JMSMessageID to be used as JMSCorrelationID on the reply but since the 
JMSCorrelationID is actually provided C could decide to give precedence to the 
JMSCorrelationID rendering B's message selector to not match.

The only way this would work as expected is when C is also set to 
useMessageIDAsCorrelationID to always prefer the JMSMessageID. But consider 
situations where C is not under your control and/or implemented in a different 
technology than Camel.

I'd argue the JMSCorrelationID should be made null when the 
useMessageIDAsCorrelationID is set on a provider.

I've created a example project to demonstrate the behavior: 
[https://github.com/alvinkwekel/camel-example-jmscorrelationid]

This issue seems to be closely related to 
https://issues.apache.org/jira/browse/CAMEL-2249



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)

Reply via email to