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:53:17 UTC

svn commit: r1528055 - in /cxf/branches/2.7.x-fixes: ./ rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/CustomInFaultyInterceptor.java

Author: sergeyb
Date: Tue Oct  1 11:53:16 2013
New Revision: 1528055

URL: http://svn.apache.org/r1528055
Log:
Merged revisions 1528051 via svnmerge from 
https://svn.apache.org/repos/asf/cxf/trunk

........
  r1528051 | sergeyb | 2013-10-01 12:47:39 +0100 (Tue, 01 Oct 2013) | 1 line
  
  [CXF-5300] CXF InInterceptor fault mapping is done by default on the trunk, optional in CXF 2.7.x
........

Modified:
    cxf/branches/2.7.x-fixes/   (props changed)
    cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java
    cxf/branches/2.7.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/CustomInFaultyInterceptor.java

Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
  Merged /cxf/trunk:r1528051

Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.

Modified: cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java?rev=1528055&r1=1528054&r2=1528055&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java (original)
+++ cxf/branches/2.7.x-fixes/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/interceptor/JAXRSInInterceptor.java Tue Oct  1 11:53:16 2013
@@ -289,30 +289,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 (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;
+                    }
                 }
             }
         }

Modified: cxf/branches/2.7.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/CustomInFaultyInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/CustomInFaultyInterceptor.java?rev=1528055&r1=1528054&r2=1528055&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/CustomInFaultyInterceptor.java (original)
+++ cxf/branches/2.7.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/CustomInFaultyInterceptor.java Tue Oct  1 11:53:16 2013
@@ -35,6 +35,7 @@ public class CustomInFaultyInterceptor e
         
         String requestUri = (String)message.get(Message.REQUEST_URI);
         if (requestUri.endsWith("/infault")) {
+            message.put("map.cxf.interceptor.fault", true);
             throw new WebApplicationException(401);
         }