You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by si...@apache.org on 2020/06/24 22:53:46 UTC

[lucene-solr] branch jira/lucene-8962 updated: fix some tests

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

simonw pushed a commit to branch jira/lucene-8962
in repository https://gitbox.apache.org/repos/asf/lucene-solr.git


The following commit(s) were added to refs/heads/jira/lucene-8962 by this push:
     new 5c37d08  fix some tests
5c37d08 is described below

commit 5c37d08cafaacd7532089e352255ca303340c5fe
Author: Simon Willnauer <si...@apache.org>
AuthorDate: Thu Jun 25 00:53:21 2020 +0200

    fix some tests
---
 .../src/java/org/apache/lucene/index/IndexWriter.java  |  8 ++++----
 .../src/java/org/apache/lucene/index/MergePolicy.java  | 18 +++++++++++-------
 2 files changed, 15 insertions(+), 11 deletions(-)

diff --git a/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java b/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
index 49304ba..1698f5f 100644
--- a/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
+++ b/lucene/core/src/java/org/apache/lucene/index/IndexWriter.java
@@ -2479,13 +2479,13 @@ public class IndexWriter implements Closeable, TwoPhaseCommit, Accountable,
       mergeFinish(merge);
     });
     pendingMerges.clear();
-    IOUtils.applyToAll(runningMerges, merge -> {
+
+    for (final MergePolicy.OneMerge merge : runningMerges) {
       if (infoStream.isEnabled("IW")) {
         infoStream.message("IW", "now abort running merge " + segString(merge.segments));
       }
-      abortOneMerge(merge);
-      mergeFinish(merge);
-    });
+      merge.setAborted();
+    }
 
     // We wait here to make all merges stop.  It should not
     // take very long because they periodically check if
diff --git a/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java b/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java
index 73702a0..d962a5b 100644
--- a/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java
+++ b/lucene/core/src/java/org/apache/lucene/index/MergePolicy.java
@@ -418,14 +418,18 @@ public abstract class MergePolicy {
       assert mergeReaders.isEmpty() : "merge readers must be empty";
       assert mergeCompleted.isDone() == false : "merge is already done";
       ArrayList<MergeReader> readers = new ArrayList<>(segments.size());
-      for (final SegmentCommitInfo info : segments) {
-        // Hold onto the "live" reader; we will use this to
-        // commit merged deletes
-        final ReadersAndUpdates rld = readerFactory.apply(info);
-        rld.setIsMerging();
-        readers.add(rld.getReaderForMerge(mergeContext));
+      try {
+        for (final SegmentCommitInfo info : segments) {
+          // Hold onto the "live" reader; we will use this to
+          // commit merged deletes
+          final ReadersAndUpdates rld = readerFactory.apply(info);
+          rld.setIsMerging();
+          readers.add(rld.getReaderForMerge(mergeContext));
+        }
+      } finally {
+        // ensure we assign this to close them in the case of an exception
+        this.mergeReaders = List.copyOf(readers);
       }
-      this.mergeReaders = List.copyOf(readers);
     }
 
     /**