You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2009/02/13 03:28:28 UTC

svn commit: r743959 - in /camel/trunk: camel-core/src/main/java/org/apache/camel/builder/xml/ camel-core/src/main/java/org/apache/camel/processor/interceptor/ components/camel-jetty/src/test/java/org/apache/camel/component/jetty/

Author: ningjiang
Date: Fri Feb 13 02:28:28 2009
New Revision: 743959

URL: http://svn.apache.org/viewvc?rev=743959&view=rev
Log:
CAMEL-1337 The xpath expression evaluations should rest the cached stream 

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/XPathBuilder.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCachingInterceptor.java
    camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyWithXPathChoiceTest.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/XPathBuilder.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/XPathBuilder.java?rev=743959&r1=743958&r2=743959&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/XPathBuilder.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/xml/XPathBuilder.java Fri Feb 13 02:28:28 2009
@@ -43,8 +43,10 @@
 import org.apache.camel.Message;
 import org.apache.camel.Predicate;
 import org.apache.camel.RuntimeExpressionException;
+import org.apache.camel.converter.stream.StreamCache;
 import org.apache.camel.spi.NamespaceAware;
 import org.apache.camel.util.ExchangeHelper;
+import org.apache.camel.util.MessageHelper;
 
 import static org.apache.camel.builder.xml.Namespaces.DEFAULT_NAMESPACE;
 import static org.apache.camel.builder.xml.Namespaces.IN_NAMESPACE;
@@ -540,6 +542,9 @@
         if (answer instanceof String) {
             answer = new InputSource(new StringReader(answer.toString()));
         }
+        
+        // call the reset if the in message body is StreamCache
+        MessageHelper.resetStreamCache(exchange.getIn());
         return answer;
     }
 }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCachingInterceptor.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCachingInterceptor.java?rev=743959&r1=743958&r2=743959&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCachingInterceptor.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/StreamCachingInterceptor.java Fri Feb 13 02:28:28 2009
@@ -82,12 +82,12 @@
         return proceed(exchange, callback);
     } 
 
-    public boolean proceed(Exchange exchange, AsyncCallback callback) {
-        if (getProcessor() instanceof AsyncProcessor) {
+    public boolean proceed(Exchange exchange, AsyncCallback callback) {        
+        if (getProcessor() instanceof AsyncProcessor) {            
             return ((AsyncProcessor) getProcessor()).process(exchange, callback);
         } else {
             try {
-                processor.process(exchange);
+                getProcessor().process(exchange);
             } catch (Throwable e) {
                 exchange.setException(e);
             }

Modified: camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyWithXPathChoiceTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyWithXPathChoiceTest.java?rev=743959&r1=743958&r2=743959&view=diff
==============================================================================
--- camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyWithXPathChoiceTest.java (original)
+++ camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyWithXPathChoiceTest.java Fri Feb 13 02:28:28 2009
@@ -64,7 +64,7 @@
             public void configure() {
                 // Need a convertBodyTo processor here or we may get an error
                 // that we are at the end of the stream
-                from("jetty:http://localhost:9080/myworld").convertBodyTo(String.class).choice()
+                from("jetty:http://localhost:9080/myworld").choice()
                   .when().xpath("/one").to("mock:x")
                   .when().xpath("/two").to("mock:y")
                   .otherwise().to("mock:z");