Author: davsclaus
Date: Thu Aug  6 06:05:09 2009
New Revision: 801513

URL: http://svn.apache.org/viewvc?rev=801513&view=rev
Log:
Puzzled had to revert the optimization

Modified:
    
camel/sandbox/tuning-experiment/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java

Modified: 
camel/sandbox/tuning-experiment/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
URL: 
http://svn.apache.org/viewvc/camel/sandbox/tuning-experiment/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java?rev=801513&r1=801512&r2=801513&view=diff
==============================================================================
--- 
camel/sandbox/tuning-experiment/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
 (original)
+++ 
camel/sandbox/tuning-experiment/camel-core/src/main/java/org/apache/camel/impl/DefaultExchange.java
 Thu Aug  6 06:05:09 2009
@@ -84,9 +84,7 @@
     public Exchange copy() {
         DefaultExchange exchange = new DefaultExchange(this);
 
-        if (exchange.hasProperties()) {
-            exchange.setProperties(getProperties());
-        }
+        exchange.setProperties(safeCopy(getProperties()));
         safeCopy(exchange.getIn(), getIn());
         if (hasOut()) {
             safeCopy(exchange.getOut(), getOut());
@@ -101,6 +99,13 @@
         }
     }
 
+    private static Map<String, Object> safeCopy(Map<String, Object> 
properties) {
+        if (properties == null) {
+            return null;
+        }
+        return new ConcurrentHashMap<String, Object>(properties);
+    }
+
     public CamelContext getContext() {
         return context;
     }
@@ -165,7 +170,9 @@
 
     public void setIn(Message in) {
         this.in = in;
-        configureMessage(in);
+        if (in != null) {
+            configureMessage(in);
+        }
     }
 
     public Message getOut() {
@@ -184,7 +191,9 @@
 
     public void setOut(Message out) {
         this.out = out;
-        configureMessage(out);
+        if (out != null) {
+            configureMessage(out);
+        }
     }
 
     public Exception getException() {


Reply via email to