[ https://issues.apache.org/jira/browse/ARTEMIS-4470?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17779546#comment-17779546 ]
Timothy A. Bish commented on ARTEMIS-4470: ------------------------------------------ It's going to depend on what you change in the Message, in AMQP the standard properties, application-properties, and application-data (the body) are considered immutable, but you have decided in a plugin you will violate that and mutate them, therefore the message must be re-encoded as internally those bits are treated as a binary blob that would be sent unchanged as they are by spec immutable. So this is not a drawback of AMQP is a consequence of your choice to mutate the immutable message portion en route. http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#toc > Headers loss in message sent from AMQP producer to AMQP consumer > ---------------------------------------------------------------- > > Key: ARTEMIS-4470 > URL: https://issues.apache.org/jira/browse/ARTEMIS-4470 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: AMQP, Broker > Affects Versions: 2.31.0 > Reporter: Mohanavalli A > Priority: Major > > Hi Team, > Our message flow involves a AMQP Producer, Broker (with custom plugin) and a > AMQP Consumer. > The message is sent by Producer to TEST queue with few headers, the broker > plugin adds few more headers on BeforeSend event on the TEST queue. When the > message is consumed by the consumer from TEST we see loss of certain headers. > > We started facing this after the recent migration of the consumer from > Openwire to AMQP protocol. There is no loss of header when the > Producer/Consumer is on openwire. > > Scenario1 > ---------- > Producer(AMQP) to TEST > Header1:String, Header2:long > > Plugin on BeforeSend event on TEST > Adds two new headers PluginHeader1(String), PluginHeader2(long) > > Consumer(AMQP) from TEST > Headers : Header1,Header2 (PluginHeader1, PluginHeader2 missing) > > Additional info: > If browsing message in console on TEST: Headers : > Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present) > If the message is moved from TEST to TEST1 queue directly on the Web Console, > the headers PluginHeader1, PluginHeader2 are lost on TEST1 queue. > > > Scenario2 > ---------- > Producer(AMQP) > Header1:String, Header2:long > > Plugin > Adds two new headers PluginHeader1(String), PluginHeader2(long) > > Consumer(Openwire) > Headers : Header1,Header2,PluginHeader1, PluginHeader2 (All headers are > present) > > Additional info: > If browsing message in console on TEST: Headers : > Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present) > If the message is moved from TEST to TEST1 queue directly on the Web Console, > the headers PluginHeader1, PluginHeader2 are lost on TEST1 queue. > > Scenario3 > ---------- > Producer(Openwire) > Header1:String, Header2:long > > Plugin > Adds two new headers PluginHeader1(String), PluginHeader2(long) > > Consumer(AMQP) > Headers : Header1,Header2,PluginHeader1, PluginHeader2 (All headers are > present) > > Additional info: > If browsing message in console on TEST: Headers : > Header1,Header2,PluginHeader1, PluginHeader2 (All headers are present) > If the message is moved from TEST to TEST1 queue directly on the Web Console, > all headers are present TEST1 queue. > > Thanks, > Mohanavalli A -- This message was sent by Atlassian Jira (v8.20.10#820010)