You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2020/09/10 20:09:57 UTC
[lucene-solr] branch branch_8x updated: LUCENE-9501: Fix invariant
violation in IndexSortSortedNumericDocValuesRangeQuery. (#1833)
This is an automated email from the ASF dual-hosted git repository.
mayya pushed a commit to branch branch_8x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
The following commit(s) were added to refs/heads/branch_8x by this push:
new a1d460b LUCENE-9501: Fix invariant violation in IndexSortSortedNumericDocValuesRangeQuery. (#1833)
a1d460b is described below
commit a1d460b27c525a526ff0928cb2454571c1fbf91f
Author: Julie Tibshirani <ju...@elastic.co>
AuthorDate: Thu Sep 10 12:02:18 2020 -0700
LUCENE-9501: Fix invariant violation in IndexSortSortedNumericDocValuesRangeQuery. (#1833)
Previously the DocIdSetIterator returned an old value for docID advance
returned NO_MORE_DOCS. This violates the DocIdSetIterator contract and made it
possiblefor the iterator's advance method to be called even after it was
already exhausted.
---
lucene/CHANGES.txt | 3 +++
.../lucene/search/IndexSortSortedNumericDocValuesRangeQuery.java | 4 ++--
.../lucene/search/TestIndexSortSortedNumericDocValuesRangeQuery.java | 2 +-
3 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index 400c00a..b110f3f 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -69,6 +69,9 @@ Bug Fixes
already exists instead of opening an IndexInput on the file which might throw a AccessDeniedException
in some Directory implementations. (Simon Willnauer)
+* LUCENE-9501: Fix a bug in IndexSortSortedNumericDocValuesRangeQuery where it could violate the
+ DocIdSetIterator contract. (Julie Tibshirani)
+
Documentation
---------------------
diff --git a/lucene/sandbox/src/java/org/apache/lucene/search/IndexSortSortedNumericDocValuesRangeQuery.java b/lucene/sandbox/src/java/org/apache/lucene/search/IndexSortSortedNumericDocValuesRangeQuery.java
index 9e22117..df574c1 100644
--- a/lucene/sandbox/src/java/org/apache/lucene/search/IndexSortSortedNumericDocValuesRangeQuery.java
+++ b/lucene/sandbox/src/java/org/apache/lucene/search/IndexSortSortedNumericDocValuesRangeQuery.java
@@ -287,10 +287,10 @@ public class IndexSortSortedNumericDocValuesRangeQuery extends Query {
int result = delegate.advance(target);
if (result < lastDoc) {
docID = result;
- return docID;
} else {
- return NO_MORE_DOCS;
+ docID = NO_MORE_DOCS;
}
+ return docID;
}
@Override
diff --git a/lucene/sandbox/src/test/org/apache/lucene/search/TestIndexSortSortedNumericDocValuesRangeQuery.java b/lucene/sandbox/src/test/org/apache/lucene/search/TestIndexSortSortedNumericDocValuesRangeQuery.java
index da6bcf1b..97319db 100644
--- a/lucene/sandbox/src/test/org/apache/lucene/search/TestIndexSortSortedNumericDocValuesRangeQuery.java
+++ b/lucene/sandbox/src/test/org/apache/lucene/search/TestIndexSortSortedNumericDocValuesRangeQuery.java
@@ -65,7 +65,7 @@ public class TestIndexSortSortedNumericDocValuesRangeQuery extends LuceneTestCas
iw.deleteDocuments(LongPoint.newRangeQuery("idx", 0L, 10L));
}
final IndexReader reader = iw.getReader();
- final IndexSearcher searcher = newSearcher(reader, false);
+ final IndexSearcher searcher = newSearcher(reader);
iw.close();
for (int i = 0; i < 100; ++i) {