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/06/05 11:24:11 UTC

svn commit: r781959 - /camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java

Author: ningjiang
Date: Fri Jun  5 09:24:11 2009
New Revision: 781959

URL: http://svn.apache.org/viewvc?rev=781959&view=rev
Log:
CAMEL-1672 updated the exception handling in CxfRsInvoker

Modified:
    camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java

Modified: camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java?rev=781959&r1=781958&r2=781959&view=diff
==============================================================================
--- camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java (original)
+++ camel/trunk/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsInvoker.java Fri Jun  5 09:24:11 2009
@@ -18,8 +18,11 @@
 
 import java.lang.reflect.Method;
 
+import javax.ws.rs.WebApplicationException;
+
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.Processor;
+import org.apache.camel.RuntimeCamelException;
 import org.apache.cxf.jaxrs.JAXRSInvoker;
 import org.apache.cxf.message.Exchange;
 
@@ -46,7 +49,15 @@
         binding.populateExchangeFromCxfRsRequest(cxfExchange, camelExchange, method, paramArray);
         processor.process(camelExchange);
         if (camelExchange.getException() != null) {
-            throw camelExchange.getException();
+            Throwable exception = camelExchange.getException();
+            Object result = null;
+            if (exception instanceof RuntimeCamelException) {
+                exception = ((RuntimeCamelException)exception).getCause();
+            }
+            if (exception instanceof WebApplicationException) {
+                result = ((WebApplicationException)exception).getResponse();
+            }
+            return result;
         }
         return binding.populateCxfRsResponseFromExchange(camelExchange, cxfExchange);
     }