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/01 23:45:54 UTC

[lucene-solr] branch reference_impl_dev updated: @685 Going after rare IW test leak.

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

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


The following commit(s) were added to refs/heads/reference_impl_dev by this push:
     new 163656b  @685 Going after rare IW test leak.
163656b is described below

commit 163656bae489238252deafcc74ab22bc284a3f5b
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Tue Sep 1 18:45:20 2020 -0500

    @685 Going after rare IW test leak.
---
 .../org/apache/solr/update/SolrIndexWriter.java    | 25 +++++++++++-----------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java b/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java
index 5a47a4d..46029a8 100644
--- a/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java
+++ b/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java
@@ -401,21 +401,22 @@ public class SolrIndexWriter extends IndexWriter {
     numCloses.incrementAndGet();
 
     log.info("SolrIndexWriter close {} numCloses={}", label, numCloses.get());
+    try {
+      if (infoStream != null) {
+        ParWork.close(infoStream, true);
+      }
 
-    if (infoStream != null) {
-      ParWork.close(infoStream, true);
-    }
-
-    if (releaseDirectory) {
-      log.info("SolrIndexWriter release {}", directory);
-      directoryFactory.release(directory);
-    }
-    if (solrMetricsContext != null) {
-      solrMetricsContext.unregister();
+      if (releaseDirectory) {
+        log.info("SolrIndexWriter release {}", directory);
+        directoryFactory.release(directory);
+      }
+      if (solrMetricsContext != null) {
+        solrMetricsContext.unregister();
+      }
+    } finally {
+      assert ObjectReleaseTracker.release(this);
     }
 
-    assert ObjectReleaseTracker.release(this);
-
     if (log.isDebugEnabled()) {
       log.debug("cleanup() - end");
     }