I committed the attached patch to fix bug #32672:

2007-07-09  Chris Burdess  <[EMAIL PROTECTED]>

        Fixes #32672
        * gnu/xml/dom/DomElement.java,
        * gnu/xml/dom/DomNamedNodeMap.java: don't check owner in
          setNamedNode when cloning.

-- 
Chris Burdess
Index: gnu/xml/dom/DomElement.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/xml/dom/DomElement.java,v
retrieving revision 1.4
diff -u -r1.4 DomElement.java
--- gnu/xml/dom/DomElement.java 12 Jan 2006 16:35:52 -0000      1.4
+++ gnu/xml/dom/DomElement.java 9 Jul 2007 17:53:40 -0000
@@ -124,7 +124,7 @@
         node.attributes = new DomNamedNodeMap(node, Node.ATTRIBUTE_NODE);
         for (DomNode ctx = attributes.first; ctx != null; ctx = ctx.next)
           {
-            node.attributes.setNamedItemNS(ctx.cloneNode(true));
+            node.attributes.setNamedItem(ctx.cloneNode(true), true, true);
           }
       }
     return node;
Index: gnu/xml/dom/DomNamedNodeMap.java
===================================================================
RCS file: /cvsroot/classpath/classpath/gnu/xml/dom/DomNamedNodeMap.java,v
retrieving revision 1.5
diff -u -r1.5 DomNamedNodeMap.java
--- gnu/xml/dom/DomNamedNodeMap.java    31 Dec 2005 10:32:14 -0000      1.5
+++ gnu/xml/dom/DomNamedNodeMap.java    9 Jul 2007 17:53:40 -0000
@@ -148,7 +148,7 @@
    */
   public Node setNamedItem(Node arg)
   {
-    return setNamedItem(arg, false);
+    return setNamedItem(arg, false, false);
   }
 
   /**
@@ -160,10 +160,10 @@
    */
   public Node setNamedItemNS(Node arg)
   {
-    return setNamedItem(arg, true);
+    return setNamedItem(arg, true, false);
   }
 
-  Node setNamedItem(Node arg, boolean ns)
+  Node setNamedItem(Node arg, boolean ns, boolean cloning)
   {
     if (readonly)
       {
@@ -171,7 +171,7 @@
       }
 
     DomNode node = (DomNode) arg;
-    if (node.owner != owner.owner)
+    if (!cloning && node.owner != owner.owner)
       {
         throw new DomDOMException(DOMException.WRONG_DOCUMENT_ERR);
       }

Reply via email to