Author: hadrian
Date: Tue Jan 17 04:59:51 2012
New Revision: 1232305

URL: http://svn.apache.org/viewvc?rev=1232305&view=rev
Log:
CAMEL-4603. Do not propagate attachments on split messages.

Modified:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/builder/ExpressionClauseTest.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java?rev=1232305&r1=1232304&r2=1232305&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java 
(original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Splitter.java 
Tue Jan 17 04:59:51 2012
@@ -125,7 +125,7 @@ public class Splitter extends MulticastP
         return new Iterable<ProcessorExchangePair>() {
             // create a copy which we use as master to copy during splitting
             // this avoids any side effect reflected upon the incoming exchange
-            private final Exchange copy = ExchangeHelper.createCopy(exchange, 
true);
+            private final Exchange copy = copyExchangeNoAttachments(exchange, 
true);
             private final RouteContext routeContext = exchange.getUnitOfWork() 
!= null ? exchange.getUnitOfWork().getRouteContext() : null;
 
             public Iterator<ProcessorExchangePair> iterator() {
@@ -220,4 +220,10 @@ public class Splitter extends MulticastP
     public Expression getExpression() {
         return expression;
     }
+    
+    static private Exchange copyExchangeNoAttachments(Exchange exchange, 
boolean preserveExchangeId) {
+        Exchange answer = ExchangeHelper.createCopy(exchange, 
preserveExchangeId);
+        answer.getIn().setAttachments(null);
+        return answer;
+    }
 }

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/builder/ExpressionClauseTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/ExpressionClauseTest.java?rev=1232305&r1=1232304&r2=1232305&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/builder/ExpressionClauseTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/builder/ExpressionClauseTest.java
 Tue Jan 17 04:59:51 2012
@@ -16,6 +16,8 @@
  */
 package org.apache.camel.builder;
 
+import java.util.Map;
+
 import javax.activation.DataHandler;
 import javax.activation.DataSource;
 import javax.activation.FileDataSource;
@@ -28,6 +30,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.component.bean.pojomessage.Person;
 import 
org.apache.camel.component.bean.pojomessage.PojoProxyHelperRequestReplyTest.PersonHandler;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.util.ObjectHelper;
 
 /**
  * @version 
@@ -60,6 +63,8 @@ public class ExpressionClauseTest extend
         });
 
         assertMockEndpointsSatisfied();
+        Map<String, DataHandler> attachments = 
mock.getExchanges().get(0).getIn().getAttachments();
+        assertTrue(attachments == null || attachments.size() == 0);
     }
 
     @Override


Reply via email to