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 {