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