You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2011/07/25 20:41:00 UTC

svn commit: r1150836 - in /cxf/branches/2.3.x-fixes: ./ api/src/main/java/org/apache/cxf/interceptor/ rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/

Author: dkulp
Date: Mon Jul 25 18:40:59 2011
New Revision: 1150836

URL: http://svn.apache.org/viewvc?rev=1150836&view=rev
Log:
Merged revisions 1149435 via svnmerge from 
https://svn.us.apache.org/repos/asf/cxf/branches/2.4.x-fixes

................
  r1149435 | dkulp | 2011-07-21 22:24:11 -0400 (Thu, 21 Jul 2011) | 11 lines
  
  Merged revisions 1149433 via svnmerge from 
  https://svn.apache.org/repos/asf/cxf/trunk
  
  ........
    r1149433 | dkulp | 2011-07-21 22:00:25 -0400 (Thu, 21 Jul 2011) | 3 lines
    
    [CXF-3672] Make it easier to control the status code sent back for
    Faults
    patch from qiu zhan bo used as starting point
  ........
................

Modified:
    cxf/branches/2.3.x-fixes/   (props changed)
    cxf/branches/2.3.x-fixes/api/src/main/java/org/apache/cxf/interceptor/Fault.java
    cxf/branches/2.3.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultOutInterceptor.java
    cxf/branches/2.3.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java
    cxf/branches/2.3.x-fixes/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLFaultOutInterceptor.java

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

Modified: cxf/branches/2.3.x-fixes/api/src/main/java/org/apache/cxf/interceptor/Fault.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/api/src/main/java/org/apache/cxf/interceptor/Fault.java?rev=1150836&r1=1150835&r2=1150836&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/api/src/main/java/org/apache/cxf/interceptor/Fault.java (original)
+++ cxf/branches/2.3.x-fixes/api/src/main/java/org/apache/cxf/interceptor/Fault.java Mon Jul 25 18:40:59 2011
@@ -38,9 +38,15 @@ public class Fault extends UncheckedExce
     public static final QName FAULT_CODE_SERVER = new QName("http://cxf.apache.org/faultcode", "server");
     public static final String STACKTRACE_NAMESPACE = "http://cxf.apache.org/fault";
     public static final String STACKTRACE = "stackTrace";
+    private static final int DEFAULT_HTTP_RESPONSE_CODE = 500;
+
     private Element detail;
     private String message;
     private QName code;
+    /**
+     * response http header status code
+     */
+    private int statusCode = DEFAULT_HTTP_RESPONSE_CODE;
     
     public Fault(Message message, Throwable throwable) {
         super(message, throwable);
@@ -161,4 +167,21 @@ public class Fault extends UncheckedExce
         }
         return detail;
     }
+    
+    /**
+     * Returns  http header status code.
+     * @return status code.
+     */
+    public int getStatusCode() {
+        return this.statusCode;
+    }
+    
+    /**
+     * Set http header status code on this fault.
+     * 
+     * @param status code.
+     */
+    public void setStatusCode(int statusCode) {
+        this.statusCode = statusCode;
+    }
 }

Modified: cxf/branches/2.3.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultOutInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultOutInterceptor.java?rev=1150836&r1=1150835&r2=1150836&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultOutInterceptor.java (original)
+++ cxf/branches/2.3.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultOutInterceptor.java Mon Jul 25 18:40:59 2011
@@ -42,7 +42,8 @@ public class Soap11FaultOutInterceptor e
         super(Phase.PREPARE_SEND);
     }
     public void handleMessage(SoapMessage message) throws Fault {
-        message.put(org.apache.cxf.message.Message.RESPONSE_CODE, new Integer(500));
+        Fault f = (Fault) message.getContent(Exception.class);
+        message.put(org.apache.cxf.message.Message.RESPONSE_CODE, f.getStatusCode());
         message.getInterceptorChain().add(Soap11FaultOutInterceptorInternal.INSTANCE);
     }
     

Modified: cxf/branches/2.3.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java?rev=1150836&r1=1150835&r2=1150836&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java (original)
+++ cxf/branches/2.3.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java Mon Jul 25 18:40:59 2011
@@ -44,7 +44,8 @@ public class Soap12FaultOutInterceptor e
         super(Phase.PREPARE_SEND);
     }
     public void handleMessage(SoapMessage message) throws Fault {
-        message.put(org.apache.cxf.message.Message.RESPONSE_CODE, new Integer(500));
+        Fault f = (Fault) message.getContent(Exception.class);
+        message.put(org.apache.cxf.message.Message.RESPONSE_CODE, f.getStatusCode());
         if (message.getVersion().getVersion() == 1.1) {
             message.getInterceptorChain().add(Soap11FaultOutInterceptorInternal.INSTANCE);
         } else {
@@ -60,10 +61,10 @@ public class Soap12FaultOutInterceptor e
         }
         public void handleMessage(SoapMessage message) throws Fault {
             LOG.info(getClass() + (String) message.get(SoapMessage.CONTENT_TYPE));
-            message.put(org.apache.cxf.message.Message.RESPONSE_CODE, new Integer(500));
             
             XMLStreamWriter writer = message.getContent(XMLStreamWriter.class);
             Fault f = (Fault)message.getContent(Exception.class);
+            message.put(org.apache.cxf.message.Message.RESPONSE_CODE, f.getStatusCode());
     
             SoapFault fault = SoapFault.createFault(f, message.getVersion());       
 

Modified: cxf/branches/2.3.x-fixes/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLFaultOutInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLFaultOutInterceptor.java?rev=1150836&r1=1150835&r2=1150836&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLFaultOutInterceptor.java (original)
+++ cxf/branches/2.3.x-fixes/rt/bindings/xml/src/main/java/org/apache/cxf/binding/xml/interceptor/XMLFaultOutInterceptor.java Mon Jul 25 18:40:59 2011
@@ -53,12 +53,12 @@ public class XMLFaultOutInterceptor exte
             throw (Fault) message.getContent(Exception.class);
         }
         
-        message.put(org.apache.cxf.message.Message.RESPONSE_CODE, new Integer(500));
+        Fault f = (Fault) message.getContent(Exception.class);
+        message.put(org.apache.cxf.message.Message.RESPONSE_CODE, f.getStatusCode());
         NSStack nsStack = new NSStack();
         nsStack.push();
 
         XMLStreamWriter writer = message.getContent(XMLStreamWriter.class);
-        Fault f = (Fault) message.getContent(Exception.class);
         XMLFault xmlFault = XMLFault.createFault(f);
         try {
             nsStack.add(XMLConstants.NS_XML_FORMAT);