Repository: camel Updated Branches: refs/heads/master d02be6fb3 -> 052fcc601
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/052fcc60 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/052fcc60 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/052fcc60 Branch: refs/heads/master Commit: 052fcc601c672ff169152103558ab761a1071f89 Parents: d02be6f Author: Claus Ibsen <[email protected]> Authored: Mon Feb 20 10:07:41 2017 +0100 Committer: Claus Ibsen <[email protected]> Committed: Mon Feb 20 10:07:41 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/052fcc60/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/052fcc60/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/052fcc60/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()); } }
