Author: ningjiang
Date: Mon Sep  1 04:55:32 2008
New Revision: 690945

URL: http://svn.apache.org/viewvc?rev=690945&view=rev
Log:
CAMEL-873 send the exception back to the client

Modified:
    
activemq/camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java
    
activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpWithIoOutProcessorExceptionTest.java

Modified: 
activemq/camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java?rev=690945&r1=690944&r2=690945&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java
 (original)
+++ 
activemq/camel/trunk/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConsumer.java
 Mon Sep  1 04:55:32 2008
@@ -109,7 +109,14 @@
                 } else {
                     body = MinaPayloadHelper.getIn(endpoint, exchange);
                 }
-                // send message back
+                boolean failed = exchange.isFailed();                
+                if (!endpoint.isTransferExchange() && failed) {
+                    if (exchange.getException() != null) {
+                        body = exchange.getException();
+                    } else {
+                        body = exchange.getFault().getBody();
+                    }
+                }
                 if (body == null) {
                     // must close session if no data to write otherwise client 
will never receive a response
                     // and wait forever (if not timing out)

Modified: 
activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpWithIoOutProcessorExceptionTest.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpWithIoOutProcessorExceptionTest.java?rev=690945&r1=690944&r2=690945&view=diff
==============================================================================
--- 
activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpWithIoOutProcessorExceptionTest.java
 (original)
+++ 
activemq/camel/trunk/components/camel-mina/src/test/java/org/apache/camel/component/mina/MinaTcpWithIoOutProcessorExceptionTest.java
 Mon Sep  1 04:55:32 2008
@@ -22,6 +22,7 @@
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.impl.DefaultExchange;
 
 /**
  * To unit test CAMEL-364.
@@ -35,8 +36,11 @@
 
     public void testExceptionThrownInProcessor() {
         String body = "Hello World";
-        String out = (String) template.requestBody(uri, body);
-        assertNull("Should not have sent data back", out);
+        Object result = template.sendBody(uri, body);
+        // The exception should be passed to the client
+        assertNotNull("the result should not be null", result);
+        assertEquals("result is IllegalArgumentException", result, 
"java.lang.IllegalArgumentException: Forced exception");
+
     }
 
     protected RouteBuilder createRouteBuilder() {


Reply via email to