Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6308015

Cloning namespaced Element breaks in Mustang b46

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: P2 P2
    • 6
    • jaxp_1.4, 6
    • xml
    • b50
    • x86
    • linux, windows_2000

      Compile and run the following class:

      ---%<---
      import java.io.StringReader;
      import javax.xml.parsers.DocumentBuilderFactory;
      import org.w3c.dom.Document;
      import org.w3c.dom.Element;
      import org.xml.sax.InputSource;
      public class TestClone {
          public static void main(String[] args) throws Exception {
              String xml = "<root xmlns='urn:root'/>";
              DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
              factory.setNamespaceAware(true);
              Document doc = factory.newDocumentBuilder().parse(new InputSource(new StringReader(xml)));
              Element root = doc.getDocumentElement();
              assert root.getLocalName().equals("root");
              assert root.getNamespaceURI().equals("urn:root");
              Document dummy = factory.newDocumentBuilder().newDocument();
              Element clone = (Element) dummy.importNode(root, true);
              assert clone.getLocalName().equals("root");
              assert clone.getNamespaceURI().equals("urn:root");
              System.out.println("OK");
          }
      }
      ---%<---

      Until Mustang b46, this worked fine, but in b46 it throws an error:

      ---%<---
      java version "1.4.2_08"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_08-b03)
      Java HotSpot(TM) Client VM (build 1.4.2_08-b03, mixed mode)

      OK
      ---%<---
      java version "1.5.0_04"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-b05)
      Java HotSpot(TM) Client VM (build 1.5.0_04-b05, mixed mode, sharing)

      OK
      ---%<---
      java version "1.6.0-ea"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.6.0-ea-b45)
      Java HotSpot(TM) Client VM (build 1.6.0-ea-b45, mixed mode, sharing)

      OK
      ---%<---
      java version "1.6.0-ea"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.6.0-ea-b46)
      Java HotSpot(TM) Client VM (build 1.6.0-ea-b46, mixed mode, sharing)

      Exception in thread "main" org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
      at com.sun.org.apache.xerces.internal.dom.AttrNSImpl.setName(AttrNSImpl.java:146)
      at com.sun.org.apache.xerces.internal.dom.AttrNSImpl.<init>(AttrNSImpl.java:115)
      at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.createAttributeNS(CoreDocumentImpl.java:2109)
      at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.importNode(CoreDocumentImpl.java:1622)
      at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.importNode(CoreDocumentImpl.java:1586)
      at com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl.importNode(CoreDocumentImpl.java:1528)
      at TestClone.main(TestClone.java:18)
      ---%<---

            duke J. Duke
            jglick Jesse Glick (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: