You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2011/03/11 05:38:39 UTC

svn commit: r1080446 - in /cxf/branches/2.3.x-fixes: ./ rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java

Author: dkulp
Date: Fri Mar 11 04:38:39 2011
New Revision: 1080446

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

........
  r1080438 | dkulp | 2011-03-10 23:24:21 -0500 (Thu, 10 Mar 2011) | 2 lines
  
  [CXF-3342] Port some fixes from the Soap11FaultOutInterceptor
  Pointers from Aaron Pieper applied
........

Modified:
    cxf/branches/2.3.x-fixes/   (props changed)
    cxf/branches/2.3.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java

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

Modified: cxf/branches/2.3.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.3.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java?rev=1080446&r1=1080445&r2=1080446&view=diff
==============================================================================
--- cxf/branches/2.3.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java (original)
+++ cxf/branches/2.3.x-fixes/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/Soap12FaultOutInterceptor.java Fri Mar 11 04:38:39 2011
@@ -66,25 +66,30 @@ public class Soap12FaultOutInterceptor e
             Fault f = (Fault)message.getContent(Exception.class);
     
             SoapFault fault = SoapFault.createFault(f, message.getVersion());       
-            
+
             try {
                 Map<String, String> namespaces = fault.getNamespaces();
                 for (Map.Entry<String, String> e : namespaces.entrySet()) {
                     writer.writeNamespace(e.getKey(), e.getValue());
                 }
-    
+
                 String ns = message.getVersion().getNamespace();
-                String defaultPrefix = StaxUtils.getUniquePrefix(writer, ns, true);
-    
-                writer.writeStartElement(defaultPrefix, "Fault", ns);
-    
+                String defaultPrefix = writer.getPrefix(ns);
+                if (defaultPrefix == null) {
+                    defaultPrefix = StaxUtils.getUniquePrefix(writer, ns, false);
+                    writer.writeStartElement(defaultPrefix, "Fault", ns);
+                    writer.writeNamespace(defaultPrefix, ns);
+                } else {
+                    writer.writeStartElement(defaultPrefix, "Fault", ns);
+                }
+
                 writer.writeStartElement(defaultPrefix, "Code", ns);
                 writer.writeStartElement(defaultPrefix, "Value", ns);
            
                 writer.writeCharacters(fault.getCodeString(getFaultCodePrefix(writer, fault.getFaultCode()), 
                                                            defaultPrefix));
                 writer.writeEndElement();
-                
+
                 if (fault.getSubCode() != null) {
                     writer.writeStartElement(defaultPrefix, "Subcode", ns);
                     writer.writeStartElement(defaultPrefix, "Value", ns);
@@ -95,7 +100,7 @@ public class Soap12FaultOutInterceptor e
                     writer.writeEndElement();
                 }
                 writer.writeEndElement();
-    
+
                 writer.writeStartElement(defaultPrefix, "Reason", ns);
                 writer.writeStartElement(defaultPrefix, "Text", ns);
                 writer.writeAttribute("xml", "http://www.w3.org/XML/1998/namespace", "lang", getLangCode());
@@ -106,27 +111,27 @@ public class Soap12FaultOutInterceptor e
                 }
                 writer.writeEndElement();
                 writer.writeEndElement();
-    
+
                 if (fault.hasDetails()) {
                     Element detail = fault.getDetail();
                     writer.writeStartElement(defaultPrefix, "Detail", ns);
-    
+
                     Node node = detail.getFirstChild();
                     while (node != null) {
                         StaxUtils.writeNode(node, writer, true);
                         node = node.getNextSibling();
                     }
-    
+
                     // Details
                     writer.writeEndElement();
                 }
-    
+
                 if (fault.getRole() != null) {
                     writer.writeStartElement(defaultPrefix, "Role", ns);
                     writer.writeCharacters(fault.getRole());
                     writer.writeEndElement();
                 }
-    
+
                 // Fault
                 writer.writeEndElement();
             } catch (Exception xe) {
@@ -134,7 +139,7 @@ public class Soap12FaultOutInterceptor e
                 throw f;
             }
         }
-        
+
         private String getLangCode() {        
             String code = LOG.getResourceBundle().getLocale().getLanguage();
             if (StringUtils.isEmpty(code)) {