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/07/15 17:18:36 UTC

[lucene-solr] branch reference_impl updated: #177 - Fix solrzkclient higherlevelisclosed.

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

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


The following commit(s) were added to refs/heads/reference_impl by this push:
     new e537b80  #177 - Fix solrzkclient higherlevelisclosed.
e537b80 is described below

commit e537b80414d8753a0b58f30d1fb814d4a19703f8
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Wed Jul 15 12:00:09 2020 -0500

    #177 - Fix solrzkclient higherlevelisclosed.
---
 solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java | 7 +++++++
 solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java | 4 ++++
 2 files changed, 11 insertions(+)

diff --git a/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java b/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java
index 2b95e28..a865688 100644
--- a/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java
+++ b/solr/core/src/java/org/apache/solr/servlet/SolrDispatchFilter.java
@@ -66,6 +66,7 @@ import org.apache.solr.api.V2HttpCall;
 import org.apache.solr.common.ParWork;
 import org.apache.solr.common.SolrException;
 import org.apache.solr.common.SolrException.ErrorCode;
+import org.apache.solr.common.cloud.ConnectionManager;
 import org.apache.solr.common.cloud.SolrZkClient;
 import org.apache.solr.common.util.ExecutorUtil;
 import org.apache.solr.common.util.IOUtils;
@@ -288,6 +289,12 @@ public class SolrDispatchFilter extends BaseSolrFilter {
 
     NodeConfig nodeConfig = loadNodeConfig(zkClient, solrHome, extraProperties);
     this.cores = new CoreContainer(zkClient, nodeConfig,  new CorePropertiesLocator(nodeConfig.getCoreRootDirectory()), true);
+    if (zkClient != null) zkClient.setHigherLevelIsClosed(new ConnectionManager.IsClosed() {
+      @Override
+      public boolean isClosed() {
+        return cores.isShutDown();
+      }
+    });
     cores.load();
     return cores;
   }
diff --git a/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java b/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java
index 6cfeeb7..5ec8c23 100644
--- a/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java
+++ b/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java
@@ -1024,6 +1024,10 @@ public class SolrZkClient implements Closeable {
     }
   }
 
+  public void setHigherLevelIsClosed(IsClosed isClosed) {
+    this.higherLevelIsClosed = isClosed;
+  }
+
   /**
    * Update all ACLs for a zk tree based on our configured {@link ZkACLProvider}.
    * @param root the root node to recursively update