You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2014/07/17 11:19:03 UTC

svn commit: r1611305 - in /lucene/dev/trunk/lucene: core/src/java/org/apache/lucene/index/FreqProxFields.java test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java

Author: mikemccand
Date: Thu Jul 17 09:19:02 2014
New Revision: 1611305

URL: http://svn.apache.org/r1611305
Log:
test seekCeil in pull postings API; fix trunk-only bug

Modified:
    lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxFields.java
    lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java

Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxFields.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxFields.java?rev=1611305&r1=1611304&r2=1611305&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxFields.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/FreqProxFields.java Thu Jul 17 09:19:02 2014
@@ -176,9 +176,11 @@ class FreqProxFields extends Fields {
 
       // not found:
       ord = lo + 1;
-      if (ord == numTerms) {
+      if (ord >= numTerms) {
         return SeekStatus.END;
       } else {
+        int textStart = postingsArray.textStarts[sortedTermIDs[ord]];
+        terms.bytePool.setBytesRef(scratch, textStart);
         return SeekStatus.NOT_FOUND;
       }
     }

Modified: lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java?rev=1611305&r1=1611304&r2=1611305&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java (original)
+++ lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/index/BasePostingsFormatTestCase.java Thu Jul 17 09:19:02 2014
@@ -45,9 +45,9 @@ import org.apache.lucene.codecs.perfield
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 import org.apache.lucene.document.FieldType;
-import org.apache.lucene.document.StringField;
 import org.apache.lucene.index.FieldInfo.DocValuesType;
 import org.apache.lucene.index.FieldInfo.IndexOptions;
+import org.apache.lucene.index.TermsEnum.SeekStatus;
 import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.FlushInfo;
 import org.apache.lucene.store.IOContext;
@@ -57,8 +57,6 @@ import org.apache.lucene.util.Constants;
 import org.apache.lucene.util.FixedBitSet;
 import org.apache.lucene.util.IOUtils;
 import org.apache.lucene.util.LineFileDocs;
-import org.apache.lucene.util.LuceneTestCase;
-import org.apache.lucene.util.RamUsageEstimator;
 import org.apache.lucene.util.RamUsageTester;
 import org.apache.lucene.util.TestUtil;
 import org.junit.AfterClass;
@@ -659,8 +657,6 @@ public abstract class BasePostingsFormat
       System.out.println("\nTEST: now build index");
     }
 
-    int maxIndexOptionNoOffsets = Arrays.asList(IndexOptions.values()).indexOf(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS);
-
     // TODO use allowPayloads
 
     FieldInfo[] newFieldInfoArray = new FieldInfo[fields.size()];
@@ -1539,6 +1535,15 @@ public abstract class BasePostingsFormat
                         assertTrue(totalTermFreq <= termFreqs.get(term).totalTermFreq);
                       }
                     }
+
+                    // Also test seekCeil
+                    for(int iter=0;iter<10;iter++) {
+                      BytesRef term = new BytesRef(TestUtil.randomRealisticUnicodeString(random()));
+                      SeekStatus status = termsEnum.seekCeil(term);
+                      if (status == SeekStatus.NOT_FOUND) {
+                        assertTrue(term.compareTo(termsEnum.term()) < 0);
+                      }
+                    }
                   }
 
                   @Override