I had a problem dealing with fault responses and I got it fixed.
The problem was in SOAPFaultBuilder.java

the message node was added to a new DOM Document but it was NOT imported first!
Importing the node first into the new DOM Document solved the problem.


The diff -u output is:

--- ws-axis-java-original/src/org/apache/axis/message/SOAPFaultBuilder.java 2005-07-27 06:44:02.000000000 +0300 +++ ws-axis-java-patched/src/org/apache/axis/message/SOAPFaultBuilder.java 2006-01-31 17:56:27.640439500 +0200
@@ -24,6 +24,7 @@
import org.apache.axis.soap.SOAPConstants;
import org.apache.axis.utils.Messages;
import org.apache.axis.utils.XMLUtils;
+import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.xml.sax.Attributes;
@@ -301,8 +302,9 @@
                        if (node instanceof MessageElement) {
elements[i] = ((MessageElement) node).getAsDOM();
                        } else if(node instanceof Text){
- elements[i] = XMLUtils.newDocument().createElement("text");
-                            elements[i].appendChild(node);
+                Document tempDoc = XMLUtils.newDocument();
+                            elements[i] = tempDoc.createElement("text");
+ elements[i].appendChild(tempDoc.importNode(node,true));
                        }
                    } catch (Exception e) {
                        throw new SAXException(e);


Reply via email to