You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ds...@apache.org on 2020/08/14 20:08:01 UTC
[lucene-solr] 01/02: LUCENE-9443: UnifiedHighlighter shouldn't
close reader (#1706)
This is an automated email from the ASF dual-hosted git repository.
dsmiley pushed a commit to branch branch_8x
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git
commit d822ab332ac89acaeb63cc81b4577ffa374281bd
Author: David Smiley <ds...@apache.org>
AuthorDate: Wed Jul 29 17:56:24 2020 -0400
LUCENE-9443: UnifiedHighlighter shouldn't close reader (#1706)
A regression from 8.6. Don't close the underlying IndexReader.
(cherry picked from commit 7d5b61797397fd785c8cc33b2367038d89ace5a9)
---
lucene/CHANGES.txt | 7 +++++++
.../org/apache/lucene/search/uhighlight/UnifiedHighlighter.java | 5 ++---
.../lucene/search/uhighlight/TestUnifiedHighlighterTermVec.java | 1 +
3 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index 352810c..dd42009 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -57,6 +57,13 @@ Other
---------------------
(No changes)
+======================= Lucene 8.6.1 =======================
+
+Bug Fixes
+---------------------
+* LUCENE-9443: The UnifiedHighlighter was closing the underlying reader when there were multiple term-vector fields.
+ This was a regression in 8.6.0. (David Smiley, Chris Beer)
+
======================= Lucene 8.6.0 =======================
API Changes
diff --git a/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/UnifiedHighlighter.java b/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/UnifiedHighlighter.java
index abf8bc6..2e6393c 100644
--- a/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/UnifiedHighlighter.java
+++ b/lucene/highlighter/src/java/org/apache/lucene/search/uhighlight/UnifiedHighlighter.java
@@ -645,7 +645,7 @@ public class UnifiedHighlighter {
batchDocIdx += fieldValsByDoc.size();
}
- IOUtils.close(indexReaderWithTermVecCache);
+ IOUtils.close(indexReaderWithTermVecCache); // FYI won't close underlying reader
assert docIdIter.docID() == DocIdSetIterator.NO_MORE_DOCS
|| docIdIter.nextDoc() == DocIdSetIterator.NO_MORE_DOCS;
@@ -1088,8 +1088,7 @@ public class UnifiedHighlighter {
.toArray(LeafReader[]::new);
return new BaseCompositeReader<IndexReader>(leafReaders) {
@Override
- protected void doClose() throws IOException {
- reader.close();
+ protected void doClose() { // don't close the underlying reader
}
@Override
diff --git a/lucene/highlighter/src/test/org/apache/lucene/search/uhighlight/TestUnifiedHighlighterTermVec.java b/lucene/highlighter/src/test/org/apache/lucene/search/uhighlight/TestUnifiedHighlighterTermVec.java
index b2319d1..f929f20 100644
--- a/lucene/highlighter/src/test/org/apache/lucene/search/uhighlight/TestUnifiedHighlighterTermVec.java
+++ b/lucene/highlighter/src/test/org/apache/lucene/search/uhighlight/TestUnifiedHighlighterTermVec.java
@@ -120,6 +120,7 @@ public class TestUnifiedHighlighterTermVec extends LuceneTestCase {
assertArrayEquals(expectedSnippetsByDoc, fieldToSnippets.get(field));
}
+ ir.document(0); // ensure this works because the ir hasn't been closed
ir.close();
}