Repository: camel Updated Branches: refs/heads/camel-2.18.x 1911e5015 -> b803b2190
CAMEL-10851: Original Message should preserve exchange from where it belongs. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/b803b219 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/b803b219 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/b803b219 Branch: refs/heads/camel-2.18.x Commit: b803b2190fd03b8b00e04049b76c581c67f3323f Parents: 1911e50 Author: Claus Ibsen <[email protected]> Authored: Mon Feb 20 10:07:41 2017 +0100 Committer: Claus Ibsen <[email protected]> Committed: Mon Feb 20 10:09:16 2017 +0100 ---------------------------------------------------------------------- .../src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java | 4 ++++ .../impl/DefaultCamelContextAllowUseOriginalMessageTrueTest.java | 1 + .../java/org/apache/camel/impl/OriginalMessageProcessor.java | 1 + 3 files changed, 6 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/b803b219/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java index ae46435..75a798e 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java +++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultUnitOfWork.java @@ -90,6 +90,10 @@ public class DefaultUnitOfWork implements UnitOfWork, Service { } else { this.originalInMessage = exchange.getIn().copy(); } + // must preserve exchange on the original in message + if (this.originalInMessage instanceof MessageSupport) { + ((MessageSupport) this.originalInMessage).setExchange(exchange); + } } // mark the creation time when this Exchange was created http://git-wip-us.apache.org/repos/asf/camel/blob/b803b219/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextAllowUseOriginalMessageTrueTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextAllowUseOriginalMessageTrueTest.java b/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextAllowUseOriginalMessageTrueTest.java index f1adf4a..ff0ab36 100644 --- a/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextAllowUseOriginalMessageTrueTest.java +++ b/camel-core/src/test/java/org/apache/camel/impl/DefaultCamelContextAllowUseOriginalMessageTrueTest.java @@ -33,6 +33,7 @@ public class DefaultCamelContextAllowUseOriginalMessageTrueTest extends ContextT getMockEndpoint("mock:result").expectedBodiesReceived("Bye World"); getMockEndpoint("mock:result").expectedHeaderReceived("HasOriginal", "true"); getMockEndpoint("mock:result").expectedHeaderReceived("OriginalBody", "World"); + getMockEndpoint("mock:result").message(0).header("OriginalExchangeId").isNotNull(); template.sendBody("direct:start", "World"); http://git-wip-us.apache.org/repos/asf/camel/blob/b803b219/camel-core/src/test/java/org/apache/camel/impl/OriginalMessageProcessor.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/impl/OriginalMessageProcessor.java b/camel-core/src/test/java/org/apache/camel/impl/OriginalMessageProcessor.java index 3b7ffd5..4e3ddbf 100644 --- a/camel-core/src/test/java/org/apache/camel/impl/OriginalMessageProcessor.java +++ b/camel-core/src/test/java/org/apache/camel/impl/OriginalMessageProcessor.java @@ -33,6 +33,7 @@ public class OriginalMessageProcessor implements Processor { } else { exchange.getIn().setHeader("HasOriginal", "true"); exchange.getIn().setHeader("OriginalBody", original.getBody()); + exchange.getIn().setHeader("OriginalExchangeId", original.getExchange().getExchangeId()); } }
