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/14 17:01:56 UTC

[lucene-solr] 01/02: #149 - Fix this right.

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

commit 23299e10f0ae05ab26f5ab7fdb2edcdebf4ff73b
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Tue Jul 14 12:00:33 2020 -0500

    #149 - Fix this right.
---
 solr/core/src/java/org/apache/solr/core/CoreContainer.java  | 13 +------------
 .../org/apache/solr/common/util/SolrNamedThreadFactory.java |  9 ++++++++-
 2 files changed, 9 insertions(+), 13 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/core/CoreContainer.java b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
index 08edb27..b1d2d44 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -193,21 +193,10 @@ public class CoreContainer implements Closeable {
 
   private volatile UpdateShardHandler updateShardHandler;
 
-  private final static ThreadPoolExecutor solrCoreLoadExecutor =  new ThreadPoolExecutor(0, Integer.MAX_VALUE,
+  private final static ThreadPoolExecutor solrCoreLoadExecutor =  new ExecutorUtil.MDCAwareThreadPoolExecutor(0, Integer.MAX_VALUE,
           3, TimeUnit.SECONDS,
           new SynchronousQueue<>(),
           new SolrNamedThreadFactory("SolrCoreLoader"));
-  static {
-    solrCoreLoadExecutor.setThreadFactory(new ThreadFactory() {
-      @Override
-      public Thread newThread(Runnable runnable) {
-        Thread t = new Thread(runnable);
-        t.setDaemon(true);
-        t.setName("SolrCoreLoader");
-        return t;
-      }
-    });
-  }
 
   private final OrderedExecutor replayUpdatesExecutor;
 
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/SolrNamedThreadFactory.java b/solr/solrj/src/java/org/apache/solr/common/util/SolrNamedThreadFactory.java
index 7995757..c596bbb 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/SolrNamedThreadFactory.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/SolrNamedThreadFactory.java
@@ -27,14 +27,21 @@ public class SolrNamedThreadFactory implements ThreadFactory {
     private final ThreadGroup group;
     private final AtomicInteger threadNumber = new AtomicInteger(1);
     private final String prefix;
+    private final boolean daemon;
+
 
     public SolrNamedThreadFactory(String namePrefix) {
+        this(namePrefix, false);
+    }
+
+    public SolrNamedThreadFactory(String namePrefix, boolean daemon) {
         SecurityManager s = System.getSecurityManager();
         group = (s != null)? s.getThreadGroup() :
                 Thread.currentThread().getThreadGroup();
         prefix = namePrefix + "-" +
                 poolNumber.getAndIncrement() +
                 "-thread-";
+        this.daemon = daemon;
     }
 
     @Override
@@ -43,7 +50,7 @@ public class SolrNamedThreadFactory implements ThreadFactory {
                 prefix + threadNumber.getAndIncrement(),
                 0);
 
-        t.setDaemon(false);
+        t.setDaemon(daemon);
 
         if (t.getPriority() != Thread.NORM_PRIORITY)
             t.setPriority(Thread.NORM_PRIORITY);