SegmentTermEnum.next() doesn't maintain prevBuffer at end
---------------------------------------------------------

         Key: LUCENE-508
         URL: http://issues.apache.org/jira/browse/LUCENE-508
     Project: Lucene - Java
        Type: Bug
  Components: Index  
    Versions: 1.9, 2.0    
 Environment: Lucene Trunk
    Reporter: Steven Tamm


When you're iterating a SegmentTermEnum and you go past the end of the docs, 
you end up with a state where the nextBuffer = null and the prevBuffer is the 
penultimate term, not the last term.  This patch fixes it.  (It's also required 
for my Prefetching bug [LUCENE-506])

Index: java/org/apache/lucene/index/SegmentTermEnum.java
===================================================================
--- java/org/apache/lucene/index/SegmentTermEnum.java   (revision 382121)
+++ java/org/apache/lucene/index/SegmentTermEnum.java   (working copy)
@@ -109,6 +109,7 @@
   /** Increments the enumeration to the next element.  True if one exists.*/
   public final boolean next() throws IOException {
     if (position++ >= size - 1) {
+      prevBuffer.set(termBuffer);
       termBuffer.reset();
       return false;
     }


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to