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 2013/05/22 13:44:50 UTC

svn commit: r1485164 - in /cxf/branches/2.6.x-fixes: ./ rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/ rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/ rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/

Author: ay
Date: Wed May 22 11:44:50 2013
New Revision: 1485164

URL: http://svn.apache.org/r1485164
Log:
Merged revisions 1485154 via  svn merge from
https://svn.apache.org/repos/asf/cxf/branches/2.7.x-fixes

........
  r1485154 | ay | 2013-05-22 13:28:37 +0200 (Wed, 22 May 2013) | 9 lines
  
  Merged revisions 1485151 via  svn merge from
  https://svn.apache.org/repos/asf/cxf/trunk
  
  ........
    r1485151 | ay | 2013-05-22 13:21:20 +0200 (Wed, 22 May 2013) | 1 line
    
    addition to CXF-5009 as requested
  ........
  
........

Modified:
    cxf/branches/2.6.x-fixes/   (props changed)
    cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapFault.java
    cxf/branches/2.6.x-fixes/rt/bindings/soap/src/test/java/org/apache/cxf/binding/soap/interceptor/SoapFaultSerializerTest.java
    cxf/branches/2.6.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WebFaultOutInterceptor.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/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapFault.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapFault.java?rev=1485164&r1=1485163&r2=1485164&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapFault.java (original)
+++ cxf/branches/2.6.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/SoapFault.java Wed May 22 11:44:50 2013
@@ -189,7 +189,7 @@ public class SoapFault extends Fault {
      * 
      * @param subCode The SubCode element as detailed by the SOAP 1.2 spec. 
      */
-    public void appendSubCode(QName subCode) {
+    public void addSubCode(QName subCode) {
         if (subCodes == null) {
             subCodes = new LinkedList<QName>();
         }

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=1485164&r1=1485163&r2=1485164&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 Wed May 22 11:44:50 2013
@@ -150,8 +150,8 @@ public class SoapFaultSerializerTest ext
         String faultString = "Hadrian caused this Fault!";
         SoapFault fault = new SoapFault(faultString, Soap12.getInstance().getSender());
         
-        fault.appendSubCode(new QName("http://cxf.apache.org/soap/fault", "invalidsoap", "cxffaultcode"));
-        fault.appendSubCode(new QName("http://cxf.apache.org/soap/fault2", "invalidsoap2", "cxffaultcode2"));
+        fault.addSubCode(new QName("http://cxf.apache.org/soap/fault", "invalidsoap", "cxffaultcode"));
+        fault.addSubCode(new QName("http://cxf.apache.org/soap/fault2", "invalidsoap2", "cxffaultcode2"));
 
         SoapMessage m = new SoapMessage(new MessageImpl());
         m.setVersion(Soap12.getInstance());

Modified: cxf/branches/2.6.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WebFaultOutInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WebFaultOutInterceptor.java?rev=1485164&r1=1485163&r2=1485164&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WebFaultOutInterceptor.java (original)
+++ cxf/branches/2.6.x-fixes/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/interceptors/WebFaultOutInterceptor.java Wed May 22 11:44:50 2013
@@ -21,6 +21,7 @@ package org.apache.cxf.jaxws.interceptor
 
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.util.Iterator;
 import java.util.Locale;
 import java.util.ResourceBundle;
 import java.util.logging.Level;
@@ -37,6 +38,7 @@ import org.apache.cxf.common.i18n.Bundle
 import org.apache.cxf.common.logging.LogUtils;
 import org.apache.cxf.common.util.StringUtils;
 import org.apache.cxf.databinding.DataWriter;
+import org.apache.cxf.helpers.CastUtils;
 import org.apache.cxf.interceptor.Fault;
 import org.apache.cxf.interceptor.FaultOutInterceptor;
 import org.apache.cxf.message.FaultMode;
@@ -88,16 +90,10 @@ public class WebFaultOutInterceptor exte
         try {
             if (f.getCause().getClass().equals(SOAPFaultException.class)) {
                 SOAPFaultException sf = (SOAPFaultException) (f.getCause());
-                if (sf.getFault().getFaultSubcodes().hasNext()
-                        && f.getClass().equals(SoapFault.class)) {
-                    String subcode = sf.getFault().getFaultSubcodes().next()
-                           .toString();
-                    String nameSpace = subcode.substring(
-                           subcode.indexOf("{") + 1, subcode.indexOf("}"));
-                    String localPart = subcode
-                           .substring(subcode.indexOf("}") + 1);
-                    QName subcodeQName = new QName(nameSpace, localPart);
-                    ((SoapFault) f).setSubCode(subcodeQName);
+                if (f instanceof SoapFault) {
+                    for (Iterator<QName> it = CastUtils.cast(sf.getFault().getFaultSubcodes()); it.hasNext();) {
+                        ((SoapFault) f).addSubCode(it.next());    
+                    }
                 }
                 if (sf.getFault().getFaultReasonLocales().hasNext()) {
                     Locale lang = (Locale) sf.getFault()