[ https://issues.apache.org/jira/browse/XMLBEANS-382?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andreas Klöber updated XMLBEANS-382: ------------------------------------ Attachment: xmlBeansTest.zip code and resources for the demonstration > Twice traversion of XmlBeans DOM-implementation fails > ----------------------------------------------------- > > Key: XMLBEANS-382 > URL: https://issues.apache.org/jira/browse/XMLBEANS-382 > Project: XMLBeans > Issue Type: Bug > Components: DOM > Affects Versions: Version 2.4 > Environment: Windows Xp Professional, Sun JDK 1.5.0-16 > Reporter: Andreas Klöber > Priority: Critical > Attachments: xmlBeansTest.zip > > > After parsing an XML-file with the generic XmlObject.Factory.parse-method the > traversion of the DOM-Reprsentation fails the second time. The following > shortened example demonstrates this: > content of example_fail.xml: > <a> > <!--comment--> > <b>example</b> > </a> > example-code: > <code> > import java.io.File; > import org.apache.xmlbeans.XmlObject; > import org.w3c.dom.Document; > import org.w3c.dom.Node; > public class XmlBeansBug { > > private static String EXAMPLE_XML_FILE_FAIL = "example_fail.xml"; > private static void traverseNodes(Node node){ > //get first child (<a>-node) > Node aNode = node.getFirstChild(); > > //get next child (#TEXT-node) > Node textNode1 = aNode.getFirstChild(); > > //get next sibling (#COMMENT-node) > Node commentNode = textNode1.getNextSibling(); > > //get next sibling (second #TEXT-node) > boolean hasCommentNodeChildes = commentNode.hasChildNodes(); > System.out.println(" has comment-node child-nodes: " + > hasCommentNodeChildes); > > if(hasCommentNodeChildes){ > Node chilfOfCommentNode = commentNode.getFirstChild(); > System.out.println(" child of comment-node is: " + > chilfOfCommentNode); > } > > Node textNode2 = commentNode.getNextSibling(); > //get next sibling (<b>-node) > Node bNode = textNode2.getNextSibling(); > } > public static void main(String[] args) throws Throwable { > XmlObject exampleFailXmlObject = XmlObject.Factory > .parse(new File(EXAMPLE_XML_FILE_FAIL)); > Document exampleFailDocument = (Document) exampleFailXmlObject > .getDomNode(); > System.out.println("First run:"); > traverseNodes(exampleFailDocument); > System.out.println("Second run:"); > traverseNodes(exampleFailDocument); > } > } > </code> > The first time hasChildNodes() on the comment-node returns false, which is > correct. The second time it returns true althoughthere have only been reading > operations on the DOM-model. The further call of getFirstChild() returns null > although the previous call to hasChildNodes() returned true. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]