You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by js...@apache.org on 2008/05/20 20:57:11 UTC
svn commit: r658395 -
/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DebugInterceptor.java
Author: jstrachan
Date: Tue May 20 11:57:10 2008
New Revision: 658395
URL: http://svn.apache.org/viewvc?rev=658395&view=rev
Log:
copy the exchanges stored in the watch lists
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DebugInterceptor.java
Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DebugInterceptor.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DebugInterceptor.java?rev=658395&r1=658394&r2=658395&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DebugInterceptor.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DebugInterceptor.java Tue May 20 11:57:10 2008
@@ -23,6 +23,7 @@
import org.apache.camel.Processor;
import org.apache.camel.Exchange;
import org.apache.camel.Predicate;
+import org.apache.camel.Message;
/**
* An interceptor for debugging and tracing routes
@@ -89,10 +90,23 @@
*/
protected void addTraceExchange(Exchange exchange) {
if (shouldTraceExchange(exchange)) {
- exchanges.add(exchange);
+ exchanges.add(copyExchange(exchange));
}
}
+ protected Exchange copyExchange(Exchange previousExchange) {
+ Exchange answer = previousExchange.newInstance();
+ answer.getProperties().putAll(previousExchange.getProperties());
+ answer.getIn().copyFrom(previousExchange.getIn());
+
+ // only copy the out if its defined
+ Message previousOut = previousExchange.getOut(false);
+ if (previousOut != null) {
+ answer.getOut().copyFrom(previousOut);
+ }
+ return answer;
+ }
+
/**
* Returns true if the given exchange should be logged in the trace list
*/