You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ff...@apache.org on 2013/08/26 10:57:42 UTC
svn commit: r1517467 - in /cxf/branches/2.6.x-fixes: ./
api/src/main/java/org/apache/cxf/interceptor/
api/src/main/java/org/apache/cxf/message/
rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/
systests/uncategorized/src/test/java...
Author: ffang
Date: Mon Aug 26 08:57:41 2013
New Revision: 1517467
URL: http://svn.apache.org/r1517467
Log:
Merged revisions 1517463 via svnmerge from
https://svn.apache.org/repos/asf/cxf/branches/2.7.x-fixes
................
r1517463 | ffang | 2013-08-26 16:46:44 +0800 (一, 26 8 2013) | 9 lines
Merged revisions 1517432 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1517432 | ffang | 2013-08-26 14:14:27 +0800 (一, 26 8 2013) | 1 line
[CXF-5231]NoSuchElementException in ClientFaultConverter when stack trace message contains line breaks
........
................
Modified:
cxf/branches/2.6.x-fixes/ (props changed)
cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/interceptor/ClientFaultConverter.java
cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/message/Message.java
cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/AbstractSoapInterceptor.java
cxf/branches/2.6.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/soapfault/details/GreeterImpl11.java
cxf/branches/2.6.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/soapfault/details/Soap11ClientServerTest.java
Propchange: cxf/branches/2.6.x-fixes/
------------------------------------------------------------------------------
Merged /cxf/branches/2.7.x-fixes:r1517463
Merged /cxf/trunk:r1517432
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/ClientFaultConverter.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/interceptor/ClientFaultConverter.java?rev=1517467&r1=1517466&r2=1517467&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/interceptor/ClientFaultConverter.java (original)
+++ cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/interceptor/ClientFaultConverter.java Mon Aug 26 08:57:41 2013
@@ -239,7 +239,7 @@ public class ClientFaultConverter extend
XPathConstants.STRING);
List<StackTraceElement> stackTraceList = new ArrayList<StackTraceElement>();
if (!StringUtils.isEmpty(ss)) {
- StringTokenizer st = new StringTokenizer(ss, "\n");
+ StringTokenizer st = new StringTokenizer(ss, Message.EXCEPTION_CAUSE_SUFFIX);
while (st.hasMoreTokens()) {
String oneLine = st.nextToken();
if (oneLine.startsWith("Caused by:")) {
Modified: cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/message/Message.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/message/Message.java?rev=1517467&r1=1517466&r2=1517467&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/message/Message.java (original)
+++ cxf/branches/2.6.x-fixes/api/src/main/java/org/apache/cxf/message/Message.java Mon Aug 26 08:57:41 2013
@@ -118,6 +118,13 @@ public interface Message extends StringM
*/
String EXCEPTION_MESSAGE_CAUSE_ENABLED = "exceptionMessageCauseEnabled";
+ /**
+ * A very unique delimiter used for exception with FAULT_STACKTRACE_ENABLED enable,
+ * which is easy for client to differentiate the cause and stacktrace when unmarsall
+ * a fault message
+ */
+ String EXCEPTION_CAUSE_SUFFIX = "#*#";
+
String CONTENT_TYPE = "Content-Type";
String ACCEPT_CONTENT_TYPE = "Accept";
String BASE_PATH = Message.class.getName() + ".BASE_PATH";
Modified: cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/AbstractSoapInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/AbstractSoapInterceptor.java?rev=1517467&r1=1517466&r2=1517467&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/AbstractSoapInterceptor.java (original)
+++ cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/AbstractSoapInterceptor.java Mon Aug 26 08:57:41 2013
@@ -82,12 +82,12 @@ public abstract class AbstractSoapInterc
while (throwable != null) {
for (StackTraceElement ste : throwable.getStackTrace()) {
sb.append(ste.getClassName() + "!" + ste.getMethodName() + "!" + ste.getFileName() + "!"
- + ste.getLineNumber() + "\n");
+ + ste.getLineNumber() + Message.EXCEPTION_CAUSE_SUFFIX);
}
throwable = throwable.getCause();
if (throwable != null) {
sb.append("Caused by: " + throwable.getClass().getCanonicalName()
- + " : " + throwable.getMessage() + "\n");
+ + " : " + throwable.getMessage() + Message.EXCEPTION_CAUSE_SUFFIX);
}
}
Element detail = fault.getDetail();
Modified: cxf/branches/2.6.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/soapfault/details/GreeterImpl11.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/soapfault/details/GreeterImpl11.java?rev=1517467&r1=1517466&r2=1517467&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/soapfault/details/GreeterImpl11.java (original)
+++ cxf/branches/2.6.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/soapfault/details/GreeterImpl11.java Mon Aug 26 08:57:41 2013
@@ -53,6 +53,11 @@ public class GreeterImpl11 {
throw new Fault("greetMeFault", LOG, new IllegalArgumentException("Get a wrong name greetMe"));
} else if (me.startsWith("E")) {
throw new Fault("invalid", LOG);
+ } else if (me.startsWith("newline")) {
+ Exception cause = new IllegalArgumentException("Get a wrong name <greetMe>"
+ , new NullPointerException("Test \n cause."));
+ cause.fillInStackTrace();
+ throw new Fault("greetMeFault", LOG, cause);
} else {
return "Hello " + me;
}
Modified: cxf/branches/2.6.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/soapfault/details/Soap11ClientServerTest.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/soapfault/details/Soap11ClientServerTest.java?rev=1517467&r1=1517466&r2=1517467&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/soapfault/details/Soap11ClientServerTest.java (original)
+++ cxf/branches/2.6.x-fixes/systests/uncategorized/src/test/java/org/apache/cxf/systest/soapfault/details/Soap11ClientServerTest.java Mon Aug 26 08:57:41 2013
@@ -95,6 +95,26 @@ public class Soap11ClientServerTest exte
assertEquals("invalid", ex.getMessage());
}
}
+
+
+ @Test
+ public void testNewLineInExceptionMessage() throws Exception {
+ Greeter greeter = getGreeter();
+
+ try {
+ greeter.greetMe("newline");
+ fail("Should throw Exception!");
+ } catch (SOAPFaultException ex) {
+ assertEquals("greetMeFault Caused by: Get a wrong name <greetMe>", ex.getMessage());
+ StackTraceElement[] elements = ex.getCause().getStackTrace();
+ assertEquals("org.apache.cxf.systest.soapfault.details.GreeterImpl11",
+ elements[0].getClassName());
+ assertTrue(ex.getCause().getMessage().endsWith("Test \n cause."));
+ }
+
+
+ }
+
@Test
public void testPingMeFault() throws Exception {