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/10/02 02:12:26 UTC

[lucene-solr] 01/06: @909 Close order.

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

commit bbd34301c960e8c992ff23e302144204e49d6f6b
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Thu Oct 1 18:55:24 2020 -0500

    @909 Close order.
---
 .../src/java/org/apache/solr/core/SolrCore.java    | 27 +++++++++++-----------
 1 file changed, 14 insertions(+), 13 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/core/SolrCore.java b/solr/core/src/java/org/apache/solr/core/SolrCore.java
index 8e2d4c9..b818a5b 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrCore.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrCore.java
@@ -1655,25 +1655,13 @@ public final class SolrCore implements SolrInfoBean, Closeable {
       closer.collect("SolrCoreInternals", closeCalls);
       closer.addCollect();
 
-      assert ObjectReleaseTracker.release(searcherExecutor);
-
       closer.collect(updateHandler);
 
       closer.addCollect();
 
       AtomicBoolean coreStateClosed = new AtomicBoolean(false);
 
-      closer.collect("SolrCoreState", () -> {
-        boolean closed = false;
-        if (updateHandler != null && updateHandler instanceof IndexWriterCloser && solrCoreState != null) {
-          closed = solrCoreState.decrefSolrCoreState((IndexWriterCloser) updateHandler);
-        } else {
-          closed = solrCoreState.decrefSolrCoreState(null);
-        }
-        coreStateClosed.set(closed);
-        return solrCoreState;
-      });
-
+      assert ObjectReleaseTracker.release(searcherExecutor);
       closer.collect(searcherExecutor);
 
       closer.addCollect();
@@ -1707,6 +1695,19 @@ public final class SolrCore implements SolrInfoBean, Closeable {
 
       closer.addCollect();
 
+      closer.collect("SolrCoreState", () -> {
+        boolean closed = false;
+        if (updateHandler != null && updateHandler instanceof IndexWriterCloser && solrCoreState != null) {
+          closed = solrCoreState.decrefSolrCoreState((IndexWriterCloser) updateHandler);
+        } else {
+          closed = solrCoreState.decrefSolrCoreState(null);
+        }
+        coreStateClosed.set(closed);
+        return solrCoreState;
+      });
+
+      closer.collect();
+
       closer.collect("CleanupOldIndexDirs", () -> {
         if (coreStateClosed.get()) {
           try {