DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6359>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6359

position() within id() makes xalan hung





------- Additional Comments From [EMAIL PROTECTED]  2002-03-08 21:51 -------
Actually, that's only a partial solution.  It avoids the infinite loop, but
fails to return the correct result if there are three or more nodes in the
result set.  

The problem remains that checking the size of the NodeSetDTM alters its current
offset (m_next).  With the previous fix, this results in skipping any nodes with
(zero-based) indices between 0 and length-1 (exclusive). 

This can be addressed by changing NodeSetDTM.getLength to:

  public int getLength()
  {
    int current = getCurrentPos(); // ***** NEW
    runTo(-1);
    setCurrentPos(current);        // ***** NEW  
    return this.size();
  }

Where the starred lines are new.

Reply via email to