You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ro...@apache.org on 2008/03/26 11:45:10 UTC
svn commit: r641243 - in /activemq/camel/trunk/camel-core/src:
main/java/org/apache/camel/processor/ test/java/org/apache/camel/processor/
Author: romkal
Date: Wed Mar 26 03:45:07 2008
New Revision: 641243
URL: http://svn.apache.org/viewvc?rev=641243&view=rev
Log:
CAMEL-399 : handleAll() doesn't swallow exceptions now
Added:
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithHandleAllPipelineTest.java (with props)
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithNestedHandleAllPipelineTest.java (with props)
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TryProcessor.java
activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationHandleAllNoCatchTest.java
Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TryProcessor.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TryProcessor.java?rev=641243&r1=641242&r2=641243&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TryProcessor.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TryProcessor.java Wed Mar 26 03:45:07 2008
@@ -85,9 +85,13 @@
private void handleAll(Exchange exchange) {
if (finallyProcessor != null) {
- DeadLetterChannel.setFailureHandled(exchange, true);
+ Throwable lastException = exchange.getException();
+ exchange.setException(null);
try {
finallyProcessor.process(exchange);
+ if (exchange.getException() == null) {
+ exchange.setException(lastException);
+ }
} catch (Exception e2) {
LOG.warn("Caught exception in finally block while handling other exception: " + e2, e2);
exchange.setException(e2);
Modified: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationHandleAllNoCatchTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationHandleAllNoCatchTest.java?rev=641243&r1=641242&r2=641243&view=diff
==============================================================================
--- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationHandleAllNoCatchTest.java (original)
+++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationHandleAllNoCatchTest.java Wed Mar 26 03:45:07 2008
@@ -43,7 +43,9 @@
public void testInvalidMessage() throws Exception {
validEndpoint.expectedMessageCount(0);
- allEndpoint.expectedMessageCount(1);
+
+ // allEndpoint receives 6 messages, as redelivery is involved
+ allEndpoint.expectedMessageCount(6);
template.sendBodyAndHeader("direct:start", "<invalid/>", "foo", "notMatchedHeaderValue");
Added: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithHandleAllPipelineTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithHandleAllPipelineTest.java?rev=641243&view=auto
==============================================================================
--- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithHandleAllPipelineTest.java (added)
+++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithHandleAllPipelineTest.java Wed Mar 26 03:45:07 2008
@@ -0,0 +1,36 @@
+/**
+ *
+ */
+package org.apache.camel.processor;
+
+import org.apache.camel.ValidationException;
+import org.apache.camel.builder.RouteBuilder;
+
+/**
+ * The handle catch clause has a pipeline processing the exception.
+ *
+ * @author <a href="mailto:nsandhu">nsandhu</a>
+ *
+ */
+public class ValidationWithHandleAllPipelineTest extends ValidationTest {
+ protected RouteBuilder createRouteBuilder() {
+ return new RouteBuilder() {
+ public void configure() {
+ from("direct:start")
+ .tryBlock()
+ .process(validator)
+ .setHeader("valid", constant(true))
+ .handle(ValidationException.class)
+ .setHeader("valid", constant(false))
+ .handleAll()
+ .setBody(body())
+ .choice()
+ .when(header("valid").isEqualTo(true))
+ .to("mock:valid")
+ .otherwise()
+ .to("mock:invalid");
+ }
+ };
+ }
+
+}
Propchange: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithHandleAllPipelineTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithHandleAllPipelineTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithNestedHandleAllPipelineTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithNestedHandleAllPipelineTest.java?rev=641243&view=auto
==============================================================================
--- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithNestedHandleAllPipelineTest.java (added)
+++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithNestedHandleAllPipelineTest.java Wed Mar 26 03:45:07 2008
@@ -0,0 +1,37 @@
+/**
+ *
+ */
+package org.apache.camel.processor;
+
+import org.apache.camel.ValidationException;
+import org.apache.camel.builder.RouteBuilder;
+
+/**
+ * The handle catch clause has a pipeline processing the exception.
+ *
+ * @author <a href="mailto:nsandhu">nsandhu</a>
+ *
+ */
+public class ValidationWithNestedHandleAllPipelineTest extends ValidationTest {
+ protected RouteBuilder createRouteBuilder() {
+ return new RouteBuilder() {
+ public void configure() {
+ from("direct:start")
+ .tryBlock()
+ .to("direct:embedded")
+ .handle(ValidationException.class)
+ .to("mock:invalid");
+
+ from("direct:embedded")
+ .errorHandler(noErrorHandler())
+ .tryBlock()
+ .process(validator)
+ .to("mock:valid")
+ .handleAll()
+ .setHeader("valid", constant(false))
+ .end();
+ }
+ };
+ }
+
+}
Propchange: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithNestedHandleAllPipelineTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithNestedHandleAllPipelineTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Re: svn commit: r641243 - in /activemq/camel/trunk/camel-core/src: main/java/org/apache/camel/processor/ test/java/org/apache/camel/processor/
Posted by James Strachan <ja...@gmail.com>.
These changes look like they've broken the build...
http://bamboo.logicblaze.com:8085/browse/CAMEL-TRUNK-22
do the tests fail for you too Roman?
On 26/03/2008, romkal@apache.org <ro...@apache.org> wrote:
> Author: romkal
> Date: Wed Mar 26 03:45:07 2008
> New Revision: 641243
>
> URL: http://svn.apache.org/viewvc?rev=641243&view=rev
> Log:
> CAMEL-399 : handleAll() doesn't swallow exceptions now
>
> Added:
> activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithHandleAllPipelineTest.java (with props)
> activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithNestedHandleAllPipelineTest.java (with props)
> Modified:
> activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TryProcessor.java
> activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationHandleAllNoCatchTest.java
>
> Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TryProcessor.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TryProcessor.java?rev=641243&r1=641242&r2=641243&view=diff
> ==============================================================================
> --- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TryProcessor.java (original)
> +++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/TryProcessor.java Wed Mar 26 03:45:07 2008
> @@ -85,9 +85,13 @@
>
> private void handleAll(Exchange exchange) {
> if (finallyProcessor != null) {
> - DeadLetterChannel.setFailureHandled(exchange, true);
> + Throwable lastException = exchange.getException();
> + exchange.setException(null);
> try {
> finallyProcessor.process(exchange);
> + if (exchange.getException() == null) {
> + exchange.setException(lastException);
> + }
> } catch (Exception e2) {
> LOG.warn("Caught exception in finally block while handling other exception: " + e2, e2);
> exchange.setException(e2);
>
> Modified: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationHandleAllNoCatchTest.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationHandleAllNoCatchTest.java?rev=641243&r1=641242&r2=641243&view=diff
> ==============================================================================
> --- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationHandleAllNoCatchTest.java (original)
> +++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationHandleAllNoCatchTest.java Wed Mar 26 03:45:07 2008
> @@ -43,7 +43,9 @@
>
> public void testInvalidMessage() throws Exception {
> validEndpoint.expectedMessageCount(0);
> - allEndpoint.expectedMessageCount(1);
> +
> + // allEndpoint receives 6 messages, as redelivery is involved
> + allEndpoint.expectedMessageCount(6);
>
> template.sendBodyAndHeader("direct:start", "<invalid/>", "foo", "notMatchedHeaderValue");
>
>
> Added: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithHandleAllPipelineTest.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithHandleAllPipelineTest.java?rev=641243&view=auto
> ==============================================================================
> --- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithHandleAllPipelineTest.java (added)
> +++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithHandleAllPipelineTest.java Wed Mar 26 03:45:07 2008
> @@ -0,0 +1,36 @@
> +/**
> + *
> + */
> +package org.apache.camel.processor;
> +
> +import org.apache.camel.ValidationException;
> +import org.apache.camel.builder.RouteBuilder;
> +
> +/**
> + * The handle catch clause has a pipeline processing the exception.
> + *
> + * @author <a href="mailto:nsandhu">nsandhu</a>
> + *
> + */
> +public class ValidationWithHandleAllPipelineTest extends ValidationTest {
> + protected RouteBuilder createRouteBuilder() {
> + return new RouteBuilder() {
> + public void configure() {
> + from("direct:start")
> + .tryBlock()
> + .process(validator)
> + .setHeader("valid", constant(true))
> + .handle(ValidationException.class)
> + .setHeader("valid", constant(false))
> + .handleAll()
> + .setBody(body())
> + .choice()
> + .when(header("valid").isEqualTo(true))
> + .to("mock:valid")
> + .otherwise()
> + .to("mock:invalid");
> + }
> + };
> + }
> +
> +}
>
> Propchange: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithHandleAllPipelineTest.java
> ------------------------------------------------------------------------------
> svn:eol-style = native
>
> Propchange: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithHandleAllPipelineTest.java
> ------------------------------------------------------------------------------
> svn:mime-type = text/plain
>
> Added: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithNestedHandleAllPipelineTest.java
> URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithNestedHandleAllPipelineTest.java?rev=641243&view=auto
> ==============================================================================
> --- activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithNestedHandleAllPipelineTest.java (added)
> +++ activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithNestedHandleAllPipelineTest.java Wed Mar 26 03:45:07 2008
> @@ -0,0 +1,37 @@
> +/**
> + *
> + */
> +package org.apache.camel.processor;
> +
> +import org.apache.camel.ValidationException;
> +import org.apache.camel.builder.RouteBuilder;
> +
> +/**
> + * The handle catch clause has a pipeline processing the exception.
> + *
> + * @author <a href="mailto:nsandhu">nsandhu</a>
> + *
> + */
> +public class ValidationWithNestedHandleAllPipelineTest extends ValidationTest {
> + protected RouteBuilder createRouteBuilder() {
> + return new RouteBuilder() {
> + public void configure() {
> + from("direct:start")
> + .tryBlock()
> + .to("direct:embedded")
> + .handle(ValidationException.class)
> + .to("mock:invalid");
> +
> + from("direct:embedded")
> + .errorHandler(noErrorHandler())
> + .tryBlock()
> + .process(validator)
> + .to("mock:valid")
> + .handleAll()
> + .setHeader("valid", constant(false))
> + .end();
> + }
> + };
> + }
> +
> +}
>
> Propchange: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithNestedHandleAllPipelineTest.java
> ------------------------------------------------------------------------------
> svn:eol-style = native
>
> Propchange: activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/ValidationWithNestedHandleAllPipelineTest.java
> ------------------------------------------------------------------------------
> svn:mime-type = text/plain
>
>
>
--
James
-------
http://macstrac.blogspot.com/
Open Source Integration
http://open.iona.com