sboag 01/08/06 06:21:11 Modified: java/src/org/apache/xml/dtm/ref DTMDefaultBaseIterators.java Log: Addresses bug http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3001. In the cloneIterator function of PrecedingIterator, the cloned array was being sized for _maxAncestors, which defaults to 8. But if the _stack was resized, it will copy more into the new stack than is allocated. The solution is to allocate the new clone._stack array to _stack.length. Revision Changes Path 1.6 +2 -5 xml-xalan/java/src/org/apache/xml/dtm/ref/DTMDefaultBaseIterators.java Index: DTMDefaultBaseIterators.java =================================================================== RCS file: /home/cvs/xml-xalan/java/src/org/apache/xml/dtm/ref/DTMDefaultBaseIterators.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- DTMDefaultBaseIterators.java 2001/08/04 20:54:20 1.5 +++ DTMDefaultBaseIterators.java 2001/08/06 13:21:11 1.6 @@ -1121,7 +1121,7 @@ { /** The max ancestors, but it can grow... */ - private final int _maxAncestors = 8; + static private final int _maxAncestors = 8; /** * The stack of start node + ancestors up to ROOTNODE, @@ -1151,15 +1151,12 @@ */ public DTMAxisIterator cloneIterator() { - _isRestartable = false; - final int[] stackCopy = new int[_maxAncestors]; - try { final PrecedingIterator clone = (PrecedingIterator) super.clone(); - + final int[] stackCopy = new int[_stack.length]; System.arraycopy(_stack, 0, stackCopy, 0, _stack.length); clone._stack = stackCopy;
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
