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

Crimson's Document cannot importNode from another DOM impl

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Not an Issue
    • Icon: P4 P4
    • None
    • 1.4.2_09
    • xml

      Consider the following class:

      ---%<---
      import javax.xml.parsers.DocumentBuilderFactory;
      import org.w3c.dom.Document;
      public class Main {
          public static void main(String[] args) throws Exception {
              Document doc1 = DocumentBuilderFactory.newInstance().newDocumentBuilder().getDOMImplementation().createDocument(null, "x", null);
              System.out.println("doc1.class=" + doc1.getClass().getName());
              Thread.currentThread().setContextClassLoader(ClassLoader.getSystemClassLoader().getParent());
              Document doc2 = DocumentBuilderFactory.newInstance().newDocumentBuilder().getDOMImplementation().createDocument(null, "y", null);
              System.out.println("doc2.class=" + doc2.getClass().getName());
              System.out.println("Importing doc1 into doc2...");
              doc2.importNode(doc1.getDocumentElement(), true);
              System.out.println("OK.");
          }
      }
      ---%<---

      Run under JDK 1.4 with Xerces in the classpath, e.g.

      /space/jdk1.4/bin/java -cp /space/src/nb_all/libs/external/xerces-2.6.2.jar:/space/src/nb_all/libs/external/xml-commons-dom-ranges-1.0.b2.jar:/tmp/test69322/dist/test69322.jar -showversion Main

      I receive an exception:

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

      doc1.class=org.apache.xerces.dom.DocumentImpl
      doc2.class=org.apache.crimson.tree.XmlDocument
      Importing doc1 into doc2...
      Exception in thread "main" java.lang.ClassCastException
              at org.apache.crimson.tree.XmlDocument.importNode(XmlDocument.java:1261)
              at Main.main(Main.java:11)
      ---%<---

      Cause of:

      http://www.netbeans.org/issues/show_bug.cgi?id=69322

      Neither

      http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#Core-Document-importNode

      nor

      http://java.sun.com/j2se/1.4.2/docs/api/javax/xml/parsers/DocumentBuilderFactory.html#newInstance()

      mentions anything about importing nodes across DOM implementations being forbidden for any reason.

            jsuttorsunw Jeff Suttor (Inactive)
            jglick Jesse Glick (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: