cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From a.@apache.org
Subject svn commit: r1423814 - in /cxf/trunk: api/src/main/java/org/apache/cxf/interceptor/ rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/ systests/uncategorized/s...
Date Wed, 19 Dec 2012 10:15:49 GMT
Author: ay
Date: Wed Dec 19 10:15:45 2012
New Revision: 1423814

URL: http://svn.apache.org/viewvc?rev=1423814&view=rev
Log:
revising the fix for CXF-4689

Modified:
    cxf/trunk/api/src/main/java/org/apache/cxf/interceptor/Fault.java
    cxf/trunk/api/src/main/java/org/apache/cxf/interceptor/FaultOutInterceptor.java
    cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/AbstractSoapInterceptor.java
    cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultOutInterceptor.java
    cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java
    cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java
    cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/soapfault/details/GreeterImpl11.java
    cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/soapfault/details/Soap11ClientServerTest.java

Modified: cxf/trunk/api/src/main/java/org/apache/cxf/interceptor/Fault.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/interceptor/Fault.java?rev=1423814&r1=1423813&r2=1423814&view=diff
==============================================================================
--- cxf/trunk/api/src/main/java/org/apache/cxf/interceptor/Fault.java (original)
+++ cxf/trunk/api/src/main/java/org/apache/cxf/interceptor/Fault.java Wed Dec 19 10:15:45
2012
@@ -85,7 +85,7 @@ public class Fault extends UncheckedExce
         if (super.getMessage() != null) {
             message = super.getMessage();
         } else {
-            message = getMessage(t);
+            message = t == null ? null : t.getMessage();
         }
         code = FAULT_CODE_SERVER;
     }
@@ -107,7 +107,7 @@ public class Fault extends UncheckedExce
         if (super.getMessage() != null) {
             message = super.getMessage();
         } else {
-            message = getMessage(t);
+            message = t == null ? null : t.getMessage();
         }
         code = fc;
     }    
@@ -185,13 +185,4 @@ 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/trunk/api/src/main/java/org/apache/cxf/interceptor/FaultOutInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/interceptor/FaultOutInterceptor.java?rev=1423814&r1=1423813&r2=1423814&view=diff
==============================================================================
--- cxf/trunk/api/src/main/java/org/apache/cxf/interceptor/FaultOutInterceptor.java (original)
+++ cxf/trunk/api/src/main/java/org/apache/cxf/interceptor/FaultOutInterceptor.java Wed Dec
19 10:15:45 2012
@@ -115,18 +115,6 @@ public class FaultOutInterceptor extends
                 //the fault like it was an unchecked exception.
                 LOG.log(Level.WARNING, "EXCEPTION_WHILE_WRITING_FAULT", fex);
             }
-        } else {
-            // Cannot find the fault info, now we should check if we need to 
-            // set the cause message of the exception
-            String config = (String)message.getContextualProperty(
-                org.apache.cxf.message.Message.EXCEPTION_MESSAGE_CAUSE_ENABLED);
-            if (config != null && Boolean.valueOf(config).booleanValue()) {
-                StringBuffer buffer = new StringBuffer();
-                buffer.append(f.getMessage());
-                buffer.append(" Caused by: ");
-                buffer.append(cause.getMessage());
-                f.setMessage(buffer.toString());
-            }
         }
     }
 

Modified: cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/AbstractSoapInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/AbstractSoapInterceptor.java?rev=1423814&r1=1423813&r2=1423814&view=diff
==============================================================================
--- cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/AbstractSoapInterceptor.java
(original)
+++ cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/AbstractSoapInterceptor.java
Wed Dec 19 10:15:45 2012
@@ -34,6 +34,8 @@ import org.apache.cxf.binding.soap.SoapF
 import org.apache.cxf.binding.soap.SoapMessage;
 import org.apache.cxf.helpers.XMLUtils;
 import org.apache.cxf.interceptor.Fault;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.message.MessageUtils;
 import org.apache.cxf.phase.AbstractPhaseInterceptor;
 import org.apache.cxf.staxutils.StaxUtils;
 
@@ -73,9 +75,8 @@ public abstract class AbstractSoapInterc
     }
     
     protected void prepareStackTrace(SoapMessage message, SoapFault fault) throws Exception
{
-        String config = (String)message
-            .getContextualProperty(org.apache.cxf.message.Message.FAULT_STACKTRACE_ENABLED);
-        if (config != null && Boolean.valueOf(config).booleanValue() && fault.getCause()
!= null) {
+        boolean config = MessageUtils.getContextualBoolean(message, Message.FAULT_STACKTRACE_ENABLED,
false);
+        if (config && fault.getCause() != null) {
             StringBuilder sb = new StringBuilder();
             Throwable throwable = fault.getCause();
             while (throwable != null) {
@@ -109,4 +110,27 @@ public abstract class AbstractSoapInterc
             }
         }
     }
+
+    static String getFaultMessage(SoapMessage message, SoapFault fault) {
+        if (message.get("forced.faultstring") != null) {
+            return (String) message.get("forced.faultstring");
+        }
+        boolean config = MessageUtils.getContextualBoolean(message, Message.EXCEPTION_MESSAGE_CAUSE_ENABLED,
false);
+        if (fault.getMessage() != null) {
+            if (config && fault.getCause() != null 
+                && fault.getCause().getMessage() != null && !fault.getMessage().equals(fault.getCause().getMessage()))
{
+                return fault.getMessage() + " Caused by: " + fault.getCause().getMessage();
+            } else {
+                return fault.getMessage();
+            }
+        } else if (config && fault.getCause() != null) {
+            if (fault.getCause().getMessage() != null) {
+                return fault.getCause().getMessage();
+            } else {
+                return fault.getCause().toString();
+            }
+        } else {
+            return "Fault occurred while processing.";
+        }
+    }
 }

Modified: cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultOutInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultOutInterceptor.java?rev=1423814&r1=1423813&r2=1423814&view=diff
==============================================================================
--- cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultOutInterceptor.java
(original)
+++ cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap11FaultOutInterceptor.java
Wed Dec 19 10:15:45 2012
@@ -82,18 +82,9 @@ public class Soap11FaultOutInterceptor e
     
                 writer.writeCharacters(codeString);
                 writer.writeEndElement();
-    
+
                 writer.writeStartElement("faultstring");
-                if (fault.getMessage() != null) {
-                    if (message.get("forced.faultstring") != null) {
-                        writer.writeCharacters((String)message.get("forced.faultstring"));
-                    } else {
-                        writer.writeCharacters(fault.getMessage());
-                    }
-                    
-                } else {
-                    writer.writeCharacters("Fault occurred while processing.");
-                }
+                writer.writeCharacters(getFaultMessage(message, fault));
                 writer.writeEndElement();
                 prepareStackTrace(message, fault);
     

Modified: cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java?rev=1423814&r1=1423813&r2=1423814&view=diff
==============================================================================
--- cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java
(original)
+++ cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java
Wed Dec 19 10:15:45 2012
@@ -105,11 +105,7 @@ public class Soap12FaultOutInterceptor e
                 writer.writeStartElement(defaultPrefix, "Reason", ns);
                 writer.writeStartElement(defaultPrefix, "Text", ns);
                 writer.writeAttribute("xml", "http://www.w3.org/XML/1998/namespace", "lang",
getLangCode());
-                if (fault.getMessage() != null) {
-                    writer.writeCharacters(fault.getMessage());
-                } else {
-                    writer.writeCharacters("Fault occurred while processing.");
-                }
+                writer.writeCharacters(getFaultMessage(message, fault));
                 writer.writeEndElement();
                 writer.writeEndElement();
 

Modified: cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java?rev=1423814&r1=1423813&r2=1423814&view=diff
==============================================================================
--- cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java
(original)
+++ cxf/trunk/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java
Wed Dec 19 10:15:45 2012
@@ -147,12 +147,12 @@ public class SoapFaultSerializerTest ext
     public void testFaultToSoapFault() throws Exception {
         Exception ex = new Exception();
         Fault fault = new Fault(ex, Fault.FAULT_CODE_CLIENT);
-        verifyFaultToSoapFault(fault, ex.toString(), true, Soap11.getInstance());
-        verifyFaultToSoapFault(fault, ex.toString(), true, Soap12.getInstance());
+        verifyFaultToSoapFault(fault, null, true, Soap11.getInstance());
+        verifyFaultToSoapFault(fault, null, true, Soap12.getInstance());
         
         fault = new Fault(ex, Fault.FAULT_CODE_SERVER);
-        verifyFaultToSoapFault(fault, ex.toString(), false, Soap11.getInstance());
-        verifyFaultToSoapFault(fault, ex.toString(), false, Soap12.getInstance());
+        verifyFaultToSoapFault(fault, null, false, Soap11.getInstance());
+        verifyFaultToSoapFault(fault, null, false, Soap12.getInstance());
         
         fault.setMessage("fault-one");
         verifyFaultToSoapFault(fault, "fault-one", false, Soap11.getInstance());

Modified: cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/soapfault/details/GreeterImpl11.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/soapfault/details/GreeterImpl11.java?rev=1423814&r1=1423813&r2=1423814&view=diff
==============================================================================
--- cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/soapfault/details/GreeterImpl11.java
(original)
+++ cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/soapfault/details/GreeterImpl11.java
Wed Dec 19 10:15:45 2012
@@ -43,7 +43,19 @@ public class GreeterImpl11 {
     private static final Logger LOG = LogUtils.getLogger(GreeterImpl11.class);
 
     public String greetMe(String me) {
-        return "Hello " + me;
+        if (me.startsWith("A")) {
+            throw new Fault(new NullPointerException());
+        } else if (me.startsWith("B")) {
+            throw new Fault(new IllegalArgumentException("Get a wrong name for greetMe"));
+        } else if (me.startsWith("C")) {
+            throw new Fault("unexpected null", LOG, new NullPointerException());
+        } else if (me.startsWith("D")) {
+            throw new Fault("greetMeFault", LOG, new IllegalArgumentException("Get a wrong
name greetMe"));
+        } else if (me.startsWith("E")) {
+            throw new Fault("invalid", LOG);
+        } else {
+            return "Hello " + me;
+        }
     }
 
     public String sayHi() {

Modified: cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/soapfault/details/Soap11ClientServerTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/soapfault/details/Soap11ClientServerTest.java?rev=1423814&r1=1423813&r2=1423814&view=diff
==============================================================================
--- cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/soapfault/details/Soap11ClientServerTest.java
(original)
+++ cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/soapfault/details/Soap11ClientServerTest.java
Wed Dec 19 10:15:45 2012
@@ -53,9 +53,48 @@ public class Soap11ClientServerTest exte
             StackTraceElement[] elements = ex.getCause().getStackTrace();
             assertEquals("org.apache.cxf.systest.soapfault.details.GreeterImpl11", 
                          elements[0].getClassName());
+        }
+        
+        // testing Fault(new NullPointerException())
+        try {
+            greeter.greetMe("Anya");
+            fail("Should throw Exception!");
+        } catch (SOAPFaultException ex) {
+            assertEquals(NullPointerException.class.getName(), ex.getMessage());
+        } 
+
+        // testing Fault(new IllegalArgumentException("Get a wrong name for greetMe"))
+        try {
+            greeter.greetMe("Banya");
+            fail("Should throw Exception!");
+        } catch (SOAPFaultException ex) {
+            assertEquals("Get a wrong name for greetMe", ex.getMessage());
+        } 
+
+        // testing Fault("unexpected null", LOG, new NullPointerException())        
+        try {
+            greeter.greetMe("Canya");
+            fail("Should throw Exception!");
+        } catch (SOAPFaultException ex) {
+            assertEquals("unexpected null", ex.getMessage());
+        } 
+
+        // testing Fault("greetMeFault", LOG, new IllegalArgumentException("Get a wrong name
greetMe"))
+        try {
+            greeter.greetMe("Danya");
+            fail("Should throw Exception!");
+        } catch (SOAPFaultException ex) {
+            assertEquals("greetMeFault Caused by: Get a wrong name greetMe", ex.getMessage());
+        } 
+
+        // testing Fault("invalid", LOG)        
+        try {
+            greeter.greetMe("Eanna");
+            fail("Should throw Exception!");
+        } catch (SOAPFaultException ex) {
+            assertEquals("invalid", ex.getMessage());
         } 
     }
-    
 
     @Test
     public void testPingMeFault() throws Exception {



Mime
View raw message