[ https://issues.apache.org/jira/browse/JXPATH-155?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Martin Busch updated JXPATH-155: -------------------------------- Description: I have a xml structur like these: {code:xml} <Request> <Tarifierung> <Verkaufsprodukt> <Produkt> <Kondition> <Wert>2</Wert> <Werteinheit>10</Werteinheit> </Kondition> <Kondition> <Wert>3</Wert> <Werteinheit>10</Werteinheit> </Kondition> <Kondition> <Wert>6</Wert> <Werteinheit>10</Werteinheit> </Kondition> <Kondition> <Wert>16</Wert> <Werteinheit>10</Werteinheit> </Kondition> </Produkt> </Verkaufsprodukt> </Tarifierung> </Request> {code} I get an iterator for the "Kondtion" tags: {code:java} JXPathContext context = JXPathContext.newContext(in); Iterator<Pointer> it_konditionen = (Iterator<Pointer>) context.iteratePointers("/request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition"); while (it_konditionen != null && it_konditionen.hasNext()) { Pointer p = it_konditionen.next(); System.out.println(p); } {code} The output to System.out looks like: /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[2] /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[3] /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[4] /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[1] /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[2] /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[3] /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[4] As we can see it start with [2] (which is not the problem) but it iterates over 2-4 twice! And this IS a problem. Very strange is that the call of "it_konditionen.hasNext()" increase the iterator one step. Best regards Martin Busch was: I have a xml structur like these: <Request> <Tarifierung> <Verkaufsprodukt> <Produkt> <Kondition> <Wert>2</Wert> <Werteinheit>10</Werteinheit> </Kondition> <Kondition> <Wert>3</Wert> <Werteinheit>10</Werteinheit> </Kondition> <Kondition> <Wert>6</Wert> <Werteinheit>10</Werteinheit> </Kondition> <Kondition> <Wert>16</Wert> <Werteinheit>10</Werteinheit> </Kondition> </Produkt> </Verkaufsprodukt> </Tarifierung> </Request> I get an iterator for the "Kondtion" tags: JXPathContext context = JXPathContext.newContext(in); Iterator<Pointer> it_konditionen = (Iterator<Pointer>) context.iteratePointers("/request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition"); while (it_konditionen != null && it_konditionen.hasNext()) { Pointer p = it_konditionen.next(); System.out.println(p); } The output to System.out looks like: /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[2] /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[3] /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[4] /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[1] /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[2] /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[3] /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[4] As we can see it start with [2] (which is not the problem) but it iterates over 2-4 twice! And this IS a problem. Very strange is that the call of "it_konditionen.hasNext()" increase the iterator one step. Best regards Martin Busch > iteratePointers give the wrong pointers > --------------------------------------- > > Key: JXPATH-155 > URL: https://issues.apache.org/jira/browse/JXPATH-155 > Project: Commons JXPath > Issue Type: Bug > Affects Versions: 1.3 > Environment: jdk 1.5 > Reporter: Martin Busch > > I have a xml structur like these: > {code:xml} > <Request> > <Tarifierung> > <Verkaufsprodukt> > <Produkt> > <Kondition> > <Wert>2</Wert> > <Werteinheit>10</Werteinheit> > </Kondition> > <Kondition> > <Wert>3</Wert> > <Werteinheit>10</Werteinheit> > </Kondition> > <Kondition> > <Wert>6</Wert> > <Werteinheit>10</Werteinheit> > </Kondition> > <Kondition> > <Wert>16</Wert> > <Werteinheit>10</Werteinheit> > </Kondition> > </Produkt> > </Verkaufsprodukt> > </Tarifierung> > </Request> > {code} > I get an iterator for the "Kondtion" tags: > {code:java} > JXPathContext context = JXPathContext.newContext(in); > Iterator<Pointer> it_konditionen = (Iterator<Pointer>) > context.iteratePointers("/request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition"); > while (it_konditionen != null && it_konditionen.hasNext()) { > Pointer p = it_konditionen.next(); > System.out.println(p); > } > {code} > The output to System.out looks like: > /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[2] > /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[3] > /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[4] > /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[1] > /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[2] > /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[3] > /request/tarifierung/verkaufsprodukt[1]/produkt[1]/kondition[4] > As we can see it start with [2] (which is not the problem) but it iterates > over 2-4 twice! And this IS a problem. > Very strange is that the call of "it_konditionen.hasNext()" increase the > iterator one step. > Best regards > Martin Busch -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira