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