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