Author: ay Date: Sun Dec 23 18:10:57 2012 New Revision: 1425500 URL: http://svn.apache.org/viewvc?rev=1425500&view=rev Log: Merged revisions 1421820 via svn merge from https://svn.apache.org/repos/asf/cxf/branches/2.6.x-fixes
........ r1421820 | ay | 2012-12-14 13:32:41 +0100 (Fri, 14 Dec 2012) | 9 lines 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.5.x-fixes/ (props changed) cxf/branches/2.5.x-fixes/api/src/main/java/org/apache/cxf/interceptor/Fault.java cxf/branches/2.5.x-fixes/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java Propchange: cxf/branches/2.5.x-fixes/ ('svn:mergeinfo' removed) Propchange: cxf/branches/2.5.x-fixes/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: cxf/branches/2.5.x-fixes/api/src/main/java/org/apache/cxf/interceptor/Fault.java URL: http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/api/src/main/java/org/apache/cxf/interceptor/Fault.java?rev=1425500&r1=1425499&r2=1425500&view=diff ============================================================================== --- cxf/branches/2.5.x-fixes/api/src/main/java/org/apache/cxf/interceptor/Fault.java (original) +++ cxf/branches/2.5.x-fixes/api/src/main/java/org/apache/cxf/interceptor/Fault.java Sun Dec 23 18:10:57 2012 @@ -84,7 +84,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; } @@ -106,7 +106,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; } @@ -184,4 +184,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.5.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.5.x-fixes/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java?rev=1425500&r1=1425499&r2=1425500&view=diff ============================================================================== --- cxf/branches/2.5.x-fixes/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java (original) +++ cxf/branches/2.5.x-fixes/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java Sun Dec 23 18:10:57 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 {
