You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2013/10/01 13:47:39 UTC
svn commit: r1528051 -
/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java
Author: sergeyb
Date: Tue Oct 1 11:47:39 2013
New Revision: 1528051
URL: http://svn.apache.org/r1528051
Log:
[CXF-5300] CXF InInterceptor fault mapping is done by default on the trunk, optional in CXF 2.7.x
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java?rev=1528051&r1=1528050&r2=1528051&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java Tue Oct 1 11:47:39 2013
@@ -252,30 +252,34 @@ public class JAXRSInInterceptor extends
public void handleFault(Message message) {
super.handleFault(message);
- Response r = JAXRSUtils.convertFaultToResponse(message.getContent(Exception.class),
- message);
- if (r != null) {
- message.removeContent(Exception.class);
- message.getInterceptorChain().setFaultObserver(null);
- if (message.getContextualProperty(FaultListener.class.getName()) == null) {
- message.put(FaultListener.class.getName(), new NoOpFaultListener());
- }
-
- Endpoint e = message.getExchange().get(Endpoint.class);
- Message mout = new MessageImpl();
- mout.setContent(List.class, new MessageContentsList(r));
- mout.setExchange(message.getExchange());
- mout = e.getBinding().createMessage(mout);
- mout.setInterceptorChain(OutgoingChainInterceptor.getOutInterceptorChain(message.getExchange()));
- message.getExchange().setOutMessage(mout);
-
-
- Iterator<Interceptor<? extends Message>> iterator = message.getInterceptorChain().iterator();
- while (iterator.hasNext()) {
- Interceptor<? extends Message> inInterceptor = iterator.next();
- if (inInterceptor.getClass() == OutgoingChainInterceptor.class) {
- ((OutgoingChainInterceptor)inInterceptor).handleMessage(message);
- return;
+ Object mapProp = message.getContextualProperty("map.cxf.interceptor.fault");
+ if (mapProp == null || MessageUtils.isTrue(mapProp)) {
+
+ Response r = JAXRSUtils.convertFaultToResponse(message.getContent(Exception.class),
+ message);
+ if (r != null) {
+ message.removeContent(Exception.class);
+ message.getInterceptorChain().setFaultObserver(null);
+ if (message.getContextualProperty(FaultListener.class.getName()) == null) {
+ message.put(FaultListener.class.getName(), new NoOpFaultListener());
+ }
+
+ Endpoint e = message.getExchange().get(Endpoint.class);
+ Message mout = new MessageImpl();
+ mout.setContent(List.class, new MessageContentsList(r));
+ mout.setExchange(message.getExchange());
+ mout = e.getBinding().createMessage(mout);
+ mout.setInterceptorChain(OutgoingChainInterceptor.getOutInterceptorChain(message.getExchange()));
+ message.getExchange().setOutMessage(mout);
+
+
+ Iterator<Interceptor<? extends Message>> iterator = message.getInterceptorChain().iterator();
+ while (iterator.hasNext()) {
+ Interceptor<? extends Message> inInterceptor = iterator.next();
+ if (inInterceptor.getClass() == OutgoingChainInterceptor.class) {
+ ((OutgoingChainInterceptor)inInterceptor).handleMessage(message);
+ return;
+ }
}
}
}