Raul Kripalani created AMQ-3817:
-----------------------------------

             Summary: Marshalled properties don't get updated if modified 
during preProcessDispatch (TraceBrokerPathPlugin looks broken)
                 Key: AMQ-3817
                 URL: https://issues.apache.org/jira/browse/AMQ-3817
             Project: ActiveMQ
          Issue Type: Bug
            Reporter: Raul Kripalani


Enabling the TraceBrokerPathPlugin with a custom property name = 'JMSXTrace' 
sends outdated information to the consumer. When inspecting the property at the 
consumer code, it has not been updated with the complete broker path. Only the 
first broker, where the message was produced into, appears. No matter how many 
brokers are in the route (tested with 4).

Having dug into the code, it looks like marshalledProperties in Message were 
already set but not dirtied when setProperty was called again from the 
TraceBrokerPathPlugin. Also, Message.beforeMarshall() assumes that since 
marshalledProperties is already set, it doesn't need updating. Therefore, the 
message is dispatched to the consumer with an old version of the properties.

I think Message.setProperty() should check whether marshalledProperties already 
has a value. If it does, it should re-marshall (i.e. dirty the cache).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to