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/08 04:14:19 UTC

[lucene-solr] 02/05: @802 Tweak http2client scheduler.

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 106845b85d8221f0ea281e373eef57d22f4cb865
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Mon Sep 7 22:59:51 2020 -0500

    @802 Tweak http2client scheduler.
---
 .../src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java | 6 +++++-
 .../org/apache/solr/common/util/SolrScheduledExecutorScheduler.java | 3 ++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
index e51b324..44b3803 100644
--- a/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
+++ b/solr/solrj/src/java/org/apache/solr/client/solrj/impl/Http2SolrClient.java
@@ -231,7 +231,11 @@ public class Http2SolrClient extends SolrClient {
 
     httpClient.setIdleTimeout(idleTimeout);
     try {
-      httpClient.setScheduler(new SolrScheduledExecutorScheduler("http2client-scheduler"));
+      SecurityManager s = System.getSecurityManager();
+      ThreadGroup group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();
+      SolrScheduledExecutorScheduler scheduler = new SolrScheduledExecutorScheduler("http2client-scheduler", null, group);
+      httpClient.setScheduler(scheduler);
+      httpClient.manage(scheduler);
       httpClient.setExecutor(httpClientExecutor);
       httpClient.setStrictEventOrdering(true);
       httpClient.setConnectBlocking(false);
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/SolrScheduledExecutorScheduler.java b/solr/solrj/src/java/org/apache/solr/common/util/SolrScheduledExecutorScheduler.java
index 078930c..ff46319 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/SolrScheduledExecutorScheduler.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/SolrScheduledExecutorScheduler.java
@@ -100,8 +100,9 @@ public class SolrScheduledExecutorScheduler extends AbstractLifeCycle implements
   protected void doStop() throws Exception {
     ScheduledThreadPoolExecutor fscheduler = scheduler;
     if (fscheduler != null) {
-      fscheduler.shutdownNow();
+      fscheduler.shutdown();
       super.doStop();
+      fscheduler.shutdownNow();
       ExecutorUtil.awaitTermination(fscheduler);
     }
     scheduler = null;