You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2026/08/06 12:35:00 UTC

[jira] [Updated] (CAMEL-24365) camel-core - Attachment trait lost when producer creates a fresh OUT message (regression from CAMEL-21755)

     [ 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)