[
https://issues.apache.org/jira/browse/CAMEL-24365?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen updated CAMEL-24365:
--------------------------------
Fix Version/s: 4.22.0
> camel-core - Attachment trait lost when producer creates a fresh OUT message
> (regression from CAMEL-21755)
> ----------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-24365
> URL: https://issues.apache.org/jira/browse/CAMEL-24365
> Project: Camel
> Issue Type: Bug
> Components: camel-core
> Affects Versions: 4.10.1
> Reporter: Claus Ibsen
> Priority: Major
> Fix For: 4.22.0
>
>
> CAMEL-21755 (commit df12381957fa, released in 4.10.1) moved attachment
> storage from Exchange-level safe-copy properties to Message-level traits
> (MessageTrait.ATTACHMENTS). This broke any producer that creates a fresh OUT
> message via exchange.getOut(), because AbstractExchange.newOutMessage() calls
> in.newInstance() which returns a blank message with no traits.
> The root cause is in AbstractExchange.newOutMessage() which creates a fresh
> message without copying the ATTACHMENTS trait from the IN message. Before
> 4.10.1, attachments lived on the Exchange and were naturally shared across
> all messages. After the trait migration, they live on the Message and are
> silently dropped when a new OUT is created.
> This affects all producers that use exchange.getOut() to create a response
> message (~127 usages across 30+ components), including camel-http (reported
> in CAMEL-24364), and potentially camel-ssh, camel-sql, camel-cxf-rest,
> camel-jcr, etc.
> The JMS component got a per-component workaround in CAMEL-23193 (manually
> copying the trait in JmsMessage.copyFrom()), but SJMS and all other
> components never got it.
> The fix belongs in core (AbstractExchange.newOutMessage()) to copy the
> ATTACHMENTS trait from IN to the new OUT message, restoring the pre-4.10.1
> semantics. The per-component workaround in JMS can then be removed.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)