[
https://issues.apache.org/jira/browse/AMQ-3817?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Raul Kripalani updated AMQ-3817:
--------------------------------
Component/s: Broker
Affects Version/s: 5.5.1
> 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
> Components: Broker
> Affects Versions: 5.5.1
> Reporter: Raul Kripalani
> Labels: marshaling, openwire, plugin
>
> 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