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);
}