You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by dw...@apache.org on 2021/03/10 10:00:00 UTC

[lucene] 47/50: LUCENE-8055: MemoryIndex.MemoryDocValuesIterator returns 2 documents instead of 1

This is an automated email from the ASF dual-hosted git repository.

dweiss pushed a commit to branch branch_7_1
in repository https://gitbox.apache.org/repos/asf/lucene.git

commit a6e968b55bd744171c8e5238438ed351d96634d2
Author: Simon Willnauer <si...@apache.org>
AuthorDate: Tue Nov 21 14:22:31 2017 +0100

    LUCENE-8055: MemoryIndex.MemoryDocValuesIterator returns 2 documents instead of 1
    
    Fixes a bug if there is a DV field in the MemoryIndex the
    `MemoryIndex.MemoryDocValuesIterator` will return 2 documents instead of 1.
---
 lucene/CHANGES.txt                                                  | 5 +++++
 .../memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java | 2 +-
 .../src/test/org/apache/lucene/index/memory/TestMemoryIndex.java    | 6 ++++++
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index 071ce84..8ee5e29 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -5,6 +5,11 @@ http://s.apache.org/luceneversions
 
 ======================= Lucene 7.1.1 =======================
 
+Bug Fixes
+
+* LUCENE-8055: MemoryIndex.MemoryDocValuesIterator returns 2 documents 
+  instead of 1. (Simon Willnauer)
+
 Build
 
 * LUCENE-6144: Upgrade Ivy to 2.4.0; 'ant ivy-bootstrap' now removes old Ivy
diff --git a/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java b/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java
index fa6b564..f732cf3 100644
--- a/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java
+++ b/lucene/memory/src/java/org/apache/lucene/index/memory/MemoryIndex.java
@@ -929,7 +929,7 @@ public class MemoryIndex {
     }
 
     int docId() {
-      return doc > 1 ? NumericDocValues.NO_MORE_DOCS : doc;
+      return doc > 0 ? NumericDocValues.NO_MORE_DOCS : doc;
     }
 
   }
diff --git a/lucene/memory/src/test/org/apache/lucene/index/memory/TestMemoryIndex.java b/lucene/memory/src/test/org/apache/lucene/index/memory/TestMemoryIndex.java
index a737aad..a4b9d71 100644
--- a/lucene/memory/src/test/org/apache/lucene/index/memory/TestMemoryIndex.java
+++ b/lucene/memory/src/test/org/apache/lucene/index/memory/TestMemoryIndex.java
@@ -59,6 +59,7 @@ import org.apache.lucene.index.SortedSetDocValues;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.index.TermsEnum;
 import org.apache.lucene.search.CollectionStatistics;
+import org.apache.lucene.search.DocIdSetIterator;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.MatchAllDocsQuery;
 import org.apache.lucene.search.PhraseQuery;
@@ -274,6 +275,7 @@ public class TestMemoryIndex extends LuceneTestCase {
     NumericDocValues numericDocValues = leafReader.getNumericDocValues("numeric");
     assertEquals(0, numericDocValues.nextDoc());
     assertEquals(29L, numericDocValues.longValue());
+    assertEquals(DocIdSetIterator.NO_MORE_DOCS, numericDocValues.nextDoc());
     SortedNumericDocValues sortedNumericDocValues = leafReader.getSortedNumericDocValues("sorted_numeric");
     assertEquals(0, sortedNumericDocValues.nextDoc());
     assertEquals(5, sortedNumericDocValues.docValueCount());
@@ -282,14 +284,17 @@ public class TestMemoryIndex extends LuceneTestCase {
     assertEquals(32L, sortedNumericDocValues.nextValue());
     assertEquals(32L, sortedNumericDocValues.nextValue());
     assertEquals(33L, sortedNumericDocValues.nextValue());
+    assertEquals(DocIdSetIterator.NO_MORE_DOCS, sortedNumericDocValues.nextDoc());
     BinaryDocValues binaryDocValues = leafReader.getBinaryDocValues("binary");
     assertEquals(0, binaryDocValues.nextDoc());
     assertEquals("a", binaryDocValues.binaryValue().utf8ToString());
+    assertEquals(DocIdSetIterator.NO_MORE_DOCS, binaryDocValues.nextDoc());
     SortedDocValues sortedDocValues = leafReader.getSortedDocValues("sorted");
     assertEquals(0, sortedDocValues.nextDoc());
     assertEquals("b", sortedDocValues.binaryValue().utf8ToString());
     assertEquals(0, sortedDocValues.ordValue());
     assertEquals("b", sortedDocValues.lookupOrd(0).utf8ToString());
+    assertEquals(DocIdSetIterator.NO_MORE_DOCS, sortedDocValues.nextDoc());
     SortedSetDocValues sortedSetDocValues = leafReader.getSortedSetDocValues("sorted_set");
     assertEquals(3, sortedSetDocValues.getValueCount());
     assertEquals(0, sortedSetDocValues.nextDoc());
@@ -300,6 +305,7 @@ public class TestMemoryIndex extends LuceneTestCase {
     assertEquals("c", sortedSetDocValues.lookupOrd(0L).utf8ToString());
     assertEquals("d", sortedSetDocValues.lookupOrd(1L).utf8ToString());
     assertEquals("f", sortedSetDocValues.lookupOrd(2L).utf8ToString());
+    assertEquals(DocIdSetIterator.NO_MORE_DOCS, sortedDocValues.nextDoc());
   }
 
   public void testDocValues_resetIterator() throws Exception {