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:

<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


--
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

        

Reply via email to