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");