Remove recursion in NumericRangeTermEnum
----------------------------------------

                 Key: LUCENE-2087
                 URL: https://issues.apache.org/jira/browse/LUCENE-2087
             Project: Lucene - Java
          Issue Type: Improvement
          Components: Search
    Affects Versions: 2.9.1, 2.9, 3.0
            Reporter: Uwe Schindler
            Assignee: Uwe Schindler
            Priority: Minor
             Fix For: 3.1
         Attachments: LUCENE-2087.patch

The current FilteredTermEnum in NRQ uses setEnum() which itsself calls next(). 
This may lead to a recursion that can overflow stack, if the index is empty and 
a large range with low precStep is used. With 64 bit numbers and precStep == 1 
there may be 127 recursions, as each sub-range would hit no term on empty index 
and the setEnum call would then call next() which itsself calls setEnum again. 
This leads to recursion depth of 256.

Attached is a patch that converts to iterative approach. setEnum is now unused 
and throws UOE (like enEnum()).

-- 
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: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to