Christian Müller created CAMEL-5338:
---------------------------------------

             Summary: Exchange.copy() should make a deep copy, if the 
referenced objects (body, headers, properties) implements java.lang.Cloneable
                 Key: CAMEL-5338
                 URL: https://issues.apache.org/jira/browse/CAMEL-5338
             Project: Camel
          Issue Type: Improvement
    Affects Versions: 2.9.2
            Reporter: Christian Müller
             Fix For: 2.9.3, 2.10.1, 2.11


We run into an issue where an exchange with a custom pojo as payload was sent 
to an multicast and changed in two different sub-routes at the same time 
(connected by using the direct protocol). The reason is that the 
Exchange.copy() method "only" creates shallow copies of the body (it's the same 
for the exchange properties and message headers). I think it's a good 
improvement to check whether the object implements java.lang.Cloneable and in 
this case create a deep copy of the object.  

[1] 
https://svn.apache.org/repos/asf/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
[2] 
https://svn.apache.org/repos/asf/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/MessageSupport.java

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