You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ay...@apache.org on 2012/12/14 13:32:42 UTC

svn commit: r1421820 - in /cxf/branches/2.6.x-fixes: ./ api/src/main/java/org/apache/cxf/interceptor/Fault.java rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java

Author: ay
Date: Fri Dec 14 12:32:41 2012
New Revision: 1421820

URL: http://svn.apache.org/viewvc?rev=1421820&view=rev
Log:
Merged revisions 1421414 via  svn merge from
https://svn.apache.org/repos/asf/cxf/trunk

........
  r1421414 | ay | 2012-12-13 19:18:20 +0100 (Thu, 13 Dec 2012) | 1 line
  
  [CXF-4684] SOAPFault message improvement in CXF
........

Modified:
    cxf/branches/2.6.x-fixes/   (props changed)
    cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/interceptor/Fault.java
    cxf/branches/2.6.x-fixes/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java

Propchange: cxf/branches/2.6.x-fixes/
            ('svn:mergeinfo' removed)

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

Modified: cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/interceptor/Fault.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/interceptor/Fault.java?rev=1421820&r1=1421819&r2=1421820&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/interceptor/Fault.java (original)
+++ cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/interceptor/Fault.java Fri Dec 14 12:32:41 2012
@@ -85,7 +85,7 @@ public class Fault extends UncheckedExce
         if (super.getMessage() != null) {
             message = super.getMessage();
         } else {
-            message = t == null ? null : t.getMessage();
+            message = getMessage(t);
         }
         code = FAULT_CODE_SERVER;
     }
@@ -107,7 +107,7 @@ public class Fault extends UncheckedExce
         if (super.getMessage() != null) {
             message = super.getMessage();
         } else {
-            message = t == null ? null : t.getMessage();
+            message = getMessage(t);
         }
         code = fc;
     }    
@@ -185,4 +185,13 @@ public class Fault extends UncheckedExce
     public void setStatusCode(int statusCode) {
         this.statusCode = statusCode;
     }
+
+    /**
+     * Extracts the effective message value from the specified exception object
+     * @param t
+     * @return
+     */
+    private static String getMessage(Throwable t) {
+        return t == null ? null : t.getMessage() != null ? t.getMessage() : t.toString();
+    }
 }

Modified: cxf/branches/2.6.x-fixes/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java?rev=1421820&r1=1421819&r2=1421820&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java (original)
+++ cxf/branches/2.6.x-fixes/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java Fri Dec 14 12:32:41 2012
@@ -36,6 +36,7 @@ import org.apache.cxf.binding.soap.Soap1
 import org.apache.cxf.binding.soap.Soap12;
 import org.apache.cxf.binding.soap.SoapFault;
 import org.apache.cxf.binding.soap.SoapMessage;
+import org.apache.cxf.binding.soap.SoapVersion;
 import org.apache.cxf.binding.soap.interceptor.Soap11FaultOutInterceptor.Soap11FaultOutInterceptorInternal;
 import org.apache.cxf.binding.soap.interceptor.Soap12FaultOutInterceptor.Soap12FaultOutInterceptorInternal;
 import org.apache.cxf.binding.soap.saaj.SAAJInInterceptor;
@@ -146,23 +147,27 @@ public class SoapFaultSerializerTest ext
     public void testFaultToSoapFault() throws Exception {
         Exception ex = new Exception();
         Fault fault = new Fault(ex, Fault.FAULT_CODE_CLIENT);
-        
-        SoapFault sf = SoapFault.createFault(fault, Soap11.getInstance());
-        assertEquals(Soap11.getInstance().getSender(), sf.getFaultCode());
-        
-        sf = SoapFault.createFault(fault, Soap12.getInstance());
-        assertEquals(Soap12.getInstance().getSender(), sf.getFaultCode());
+        verifyFaultToSoapFault(fault, ex.toString(), true, Soap11.getInstance());
+        verifyFaultToSoapFault(fault, ex.toString(), true, Soap12.getInstance());
         
         fault = new Fault(ex, Fault.FAULT_CODE_SERVER);
-        sf = SoapFault.createFault(fault, Soap11.getInstance());
-        assertEquals(Soap11.getInstance().getReceiver(), sf.getFaultCode());
-        
-        sf = SoapFault.createFault(fault, Soap12.getInstance());
-        assertEquals(Soap12.getInstance().getReceiver(), sf.getFaultCode());
+        verifyFaultToSoapFault(fault, ex.toString(), false, Soap11.getInstance());
+        verifyFaultToSoapFault(fault, ex.toString(), false, Soap12.getInstance());
         
+        fault.setMessage("fault-one");
+        verifyFaultToSoapFault(fault, "fault-one", false, Soap11.getInstance());
+
+        ex = new Exception("fault-two");
+        fault = new Fault(ex, Fault.FAULT_CODE_CLIENT);
+        verifyFaultToSoapFault(fault, "fault-two", true, Soap11.getInstance());
     }
     
-    
+    private void verifyFaultToSoapFault(Fault fault, String msg, boolean sender, SoapVersion v) {
+        SoapFault sf = SoapFault.createFault(fault, v);
+        assertEquals(sender ? v.getSender() : v.getReceiver(), sf.getFaultCode());
+        assertEquals(msg, sf.getMessage());
+    }
+
     @Test
     public void testCXF1864() throws Exception {