Yasser Zamani created CAMEL-17563: ------------------------------------- Summary: wireTap doesn't deep copy attachments Key: CAMEL-17563 URL: https://issues.apache.org/jira/browse/CAMEL-17563 Project: Camel Issue Type: Bug Components: came-core Affects Versions: 3.14.0 Reporter: Yasser Zamani
Attachments are just stored in a Map in an internal property of exchange. So when Camel copies exchange on wireTap, Attachments is copied by reference and so are shared with the main route and so confusing un-deterministic behavior will emerge on wireTap when exchange has attachments! Currently I've workaround this issue as following: {code:java} .wireTap("direct:xslt-validation-logging").onPrepare(exchange -> { // deep copy attachments to avoid wiretap added attachments to be seen in the original route AttachmentMessage attMsg = exchange.getIn(AttachmentMessage.class); attMsg.setAttachments(attMsg.getAttachments()); }).end() {code} but I think Camel internally MUST do this for me as it's useless to share attachments with main route I think. -- This message was sent by Atlassian Jira (v8.20.1#820001)