You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-dev@xerces.apache.org by Sergey Vidyuk <sv...@gmail.com> on 2006/10/09 17:23:41 UTC

java.lang.ClassCastException when adopting Node

When trying to adopt node after parsing
    public static Node parseString(Document doc, String content)
            throws Exception
StringReader contentReader = new StringReader(content);
        InputSource source = new InputSource(contentReader);
        DocumentBuilder b = XMLTools.get(false, false);
        Document sourceDoc = b.parse(source);
        XMLTools.release(b, false, false);
        Node root = sourceDoc.getFirstChild();
        Node imported = doc.adoptNode(root);
        if (imported == null) {
            System.out.println("not adopted");
            imported = doc.importNode(root, true);
        }
return imported;
}


folowing error occur:
java.lang.ClassCastException: org.apache.xerces.dom.DocumentImpl
        at org.apache.xerces.dom.DeferredAttrImpl.synchronizeChildren(Unknown
Source)
        at org.apache.xerces.dom.AttrImpl.setOwnerDocument(Unknown Source)
        at org.apache.xerces.dom.NamedNodeMapImpl.setOwnerDocument(Unknown
Source)
        at org.apache.xerces.dom.ElementImpl.setOwnerDocument(Unknown Source)
        at org.apache.xerces.dom.ParentNode.setOwnerDocument(Unknown Source)
        at org.apache.xerces.dom.ElementImpl.setOwnerDocument(Unknown Source)
        at org.apache.xerces.dom.CoreDocumentImpl.adoptNode(Unknown Source)


Java: JDK 1.5.0_08 Xerces 2.8.1

What I do wrong?

---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org


Re: java.lang.ClassCastException when adopting Node

Posted by Michael Glavassevich <mr...@ca.ibm.com>.
Are you sure you were using Xerces 2.8.1 when you tried this? This looks 
identical to a bug [1][2] that was reported last year and fixed in Xerces 
2.8.0. The test which was attached to that bug report still works for me.

[1] 
http://mail-archives.apache.org/mod_mbox/xerces-j-users/200510.mbox/%3c4357AFBC.30809@georgetown.edu%3e
[2] http://issues.apache.org/jira/browse/XERCESJ-1106

Michael Glavassevich
XML Parser Development
IBM Toronto Lab
E-mail: mrglavas@ca.ibm.com
E-mail: mrglavas@apache.org

"Sergey Vidyuk" <sv...@gmail.com> wrote on 10/09/2006 11:23:41 AM:

> When trying to adopt node after parsing
>     public static Node parseString(Document doc, String content)
>             throws Exception
> StringReader contentReader = new StringReader(content);
>         InputSource source = new InputSource(contentReader);
>         DocumentBuilder b = XMLTools.get(false, false);
>         Document sourceDoc = b.parse(source);
>         XMLTools.release(b, false, false);
>         Node root = sourceDoc.getFirstChild();
>         Node imported = doc.adoptNode(root);
>         if (imported == null) {
>             System.out.println("not adopted");
>             imported = doc.importNode(root, true);
>         }
> return imported;
> }
> 
> 
> folowing error occur:
> java.lang.ClassCastException: org.apache.xerces.dom.DocumentImpl
>         at 
org.apache.xerces.dom.DeferredAttrImpl.synchronizeChildren(Unknown
> Source)
>         at org.apache.xerces.dom.AttrImpl.setOwnerDocument(Unknown 
Source)
>         at 
org.apache.xerces.dom.NamedNodeMapImpl.setOwnerDocument(Unknown
> Source)
>         at org.apache.xerces.dom.ElementImpl.setOwnerDocument(Unknown 
Source)
>         at org.apache.xerces.dom.ParentNode.setOwnerDocument(Unknown 
Source)
>         at org.apache.xerces.dom.ElementImpl.setOwnerDocument(Unknown 
Source)
>         at org.apache.xerces.dom.CoreDocumentImpl.adoptNode(Unknown 
Source)
> 
> 
> Java: JDK 1.5.0_08 Xerces 2.8.1
> 
> What I do wrong?
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
> For additional commands, e-mail: j-dev-help@xerces.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org