Repository: camel
Updated Branches:
  refs/heads/camel-2.16.x e67d08c2e -> ac83e1023
  refs/heads/master 53600cfaf -> da0359526


CAMEL-9666: Propagate 'fault' property to soft copy


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/da035952
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/da035952
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/da035952

Branch: refs/heads/master
Commit: da0359526d08fc5b40a202ba050b310f3c05c3a6
Parents: 53600cf
Author: Martin Basovnik <mbaso...@redhat.com>
Authored: Thu Mar 3 11:19:04 2016 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Fri Mar 4 09:03:57 2016 +0100

----------------------------------------------------------------------
 .../org/apache/camel/impl/DefaultExchange.java  |  2 ++
 .../apache/camel/impl/DefaultExchangeTest.java  | 21 ++++++++++++++++++++
 2 files changed, 23 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/da035952/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java 
b/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
index e1f83f6..923c0d8 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
@@ -98,6 +98,7 @@ public final class DefaultExchange implements Exchange {
 
         if (safeCopy) {
             exchange.getIn().setBody(getIn().getBody());
+            exchange.getIn().setFault(getIn().isFault());
             if (getIn().hasHeaders()) {
                 
exchange.getIn().setHeaders(safeCopyHeaders(getIn().getHeaders()));
                 // just copy the attachments here
@@ -105,6 +106,7 @@ public final class DefaultExchange implements Exchange {
             }
             if (hasOut()) {
                 exchange.getOut().setBody(getOut().getBody());
+                exchange.getOut().setFault(getOut().isFault());
                 if (getOut().hasHeaders()) {
                     
exchange.getOut().setHeaders(safeCopyHeaders(getOut().getHeaders()));
                 }

http://git-wip-us.apache.org/repos/asf/camel/blob/da035952/camel-core/src/test/java/org/apache/camel/impl/DefaultExchangeTest.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/test/java/org/apache/camel/impl/DefaultExchangeTest.java 
b/camel-core/src/test/java/org/apache/camel/impl/DefaultExchangeTest.java
index c8395ac..43bd8ff 100644
--- a/camel-core/src/test/java/org/apache/camel/impl/DefaultExchangeTest.java
+++ b/camel-core/src/test/java/org/apache/camel/impl/DefaultExchangeTest.java
@@ -216,6 +216,27 @@ public class DefaultExchangeTest extends 
ExchangeTestSupport {
                      sourceIn.getClass(), destIn.getClass());
     }
 
+    public void testFaultCopy() {
+        testFaultCopy(false);
+    }
+
+    public void testFaultSafeCopy() {
+        testFaultCopy(true);
+    }
+
+    private void testFaultCopy(boolean safe) {
+        DefaultExchange sourceExchange = new DefaultExchange(context);
+        MyMessage source = new MyMessage();
+        source.setFault(true);
+        sourceExchange.setIn(source);
+        sourceExchange.setOut(source);
+        Exchange destExchange = sourceExchange.copy(safe);
+        assertEquals("Fault property was not copied to IN message",
+                sourceExchange.getIn().isFault(), 
destExchange.getIn().isFault());
+        assertEquals("Fault property was not copied to OUT message",
+                sourceExchange.getOut().isFault(), 
destExchange.getOut().isFault());
+    }
+
     public static class MyMessage extends DefaultMessage {
         @Override
         public MyMessage newInstance() {

Reply via email to