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/08/17 23:11:46 UTC

[lucene-solr] 16/49: @530 Make it work.

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 949d45b3710476f719115c1c922eb9cd9f143cec
Author: markrmiller@gmail.com <ma...@gmail.com>
AuthorDate: Wed Aug 12 08:07:16 2020 -0500

    @530 Make it work.
---
 solr/core/src/java/org/apache/solr/api/AnnotatedApi.java     |  3 ++-
 solr/core/src/java/org/apache/solr/api/ApiBag.java           |  4 ++--
 solr/solrj/src/java/org/apache/solr/common/ParWork.java      |  4 ++--
 .../org/apache/solr/common/util/JsonSchemaValidator.java     |  2 +-
 .../solrj/src/java/org/apache/solr/common/util/PathTrie.java |  4 ++--
 .../org/apache/solr/common/util/SolrQueuedThreadPool.java    | 12 ++++++++++--
 .../java/org/apache/solr/common/util/ValidatingJsonMap.java  |  5 +++--
 7 files changed, 22 insertions(+), 12 deletions(-)

diff --git a/solr/core/src/java/org/apache/solr/api/AnnotatedApi.java b/solr/core/src/java/org/apache/solr/api/AnnotatedApi.java
index 069b89f..29ddd17 100644
--- a/solr/core/src/java/org/apache/solr/api/AnnotatedApi.java
+++ b/solr/core/src/java/org/apache/solr/api/AnnotatedApi.java
@@ -31,6 +31,7 @@ import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import org.apache.solr.client.solrj.SolrRequest;
@@ -128,7 +129,7 @@ public class AnnotatedApi extends Api implements PermissionNameProvider {
 
   private static SpecProvider readSpec(EndPoint endPoint, List<Method> m) {
     return () -> {
-      Map map = new LinkedHashMap(3);
+      Map map = new ConcurrentHashMap(64);
       List<String> methods = new ArrayList<>(endPoint.method().length);
       for (SolrRequest.METHOD method : endPoint.method()) {
         methods.add(method.name());
diff --git a/solr/core/src/java/org/apache/solr/api/ApiBag.java b/solr/core/src/java/org/apache/solr/api/ApiBag.java
index 03c3d39..2c14324 100644
--- a/solr/core/src/java/org/apache/solr/api/ApiBag.java
+++ b/solr/core/src/java/org/apache/solr/api/ApiBag.java
@@ -61,7 +61,7 @@ public class ApiBag {
   private final boolean isCoreSpecific;
   private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
-  private final Map<String, PathTrie<Api>> apis = new ConcurrentHashMap<>(128, 0.75f, 12);
+  private final Map<String, PathTrie<Api>> apis = new ConcurrentHashMap<>(128, 0.75f, 6);
 
   public ApiBag(boolean isCoreSpecific) {
     this.isCoreSpecific = isCoreSpecific;
@@ -198,7 +198,7 @@ public class ApiBag {
   }
 
   public static Map<String, JsonSchemaValidator> getParsedSchema(ValidatingJsonMap commands) {
-    Map<String, JsonSchemaValidator> validators = new HashMap<>();
+    Map<String, JsonSchemaValidator> validators = new HashMap<>(commands.size());
     for (Object o : commands.entrySet()) {
       Map.Entry cmd = (Map.Entry) o;
       try {
diff --git a/solr/solrj/src/java/org/apache/solr/common/ParWork.java b/solr/solrj/src/java/org/apache/solr/common/ParWork.java
index 972a92b..118bd99 100644
--- a/solr/solrj/src/java/org/apache/solr/common/ParWork.java
+++ b/solr/solrj/src/java/org/apache/solr/common/ParWork.java
@@ -621,8 +621,8 @@ public class ParWork implements Closeable {
 
       Integer minThreads;
       Integer maxThreads;
-      minThreads = Integer.getInteger("solr.per_thread_exec.min_threads", 3);
-      maxThreads = Integer.getInteger("solr.per_thread_exec.max_threads",  Runtime.getRuntime().availableProcessors());
+      minThreads = 3;
+      maxThreads = PROC_COUNT;
       exec = getExecutorService(Math.max(minThreads, maxThreads)); // keep alive directly affects how long a worker might
       // be stuck in poll without an enqueue on shutdown
       THREAD_LOCAL_EXECUTOR.set(exec);
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/JsonSchemaValidator.java b/solr/solrj/src/java/org/apache/solr/common/util/JsonSchemaValidator.java
index 178503e..3231eb5 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/JsonSchemaValidator.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/JsonSchemaValidator.java
@@ -40,7 +40,7 @@ public class JsonSchemaValidator {
   @SuppressWarnings({"unchecked", "rawtypes"})
   private List<Validator> validators;
   private static Set<String> KNOWN_FNAMES = new HashSet<>(Arrays.asList(
-      "description","documentation","default","additionalProperties"));
+      "description","documentation","default","additionalProperties", "#include"));
 
 
   @SuppressWarnings({"rawtypes"})
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/PathTrie.java b/solr/solrj/src/java/org/apache/solr/common/util/PathTrie.java
index 3709ea1..2fd84c2 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/PathTrie.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/PathTrie.java
@@ -118,13 +118,13 @@ public class PathTrie<T> {
     }
 
 
-    private synchronized void insert(List<String> path, T o) {
+    private void insert(List<String> path, T o) {
       String part = path.get(0);
       Node matchedChild = null;
       if ("*".equals(name)) {
         return;
       }
-      if (children == null) children = new ConcurrentHashMap<>();
+      if (children == null) children = new ConcurrentHashMap<>(32);
 
       String varName = templateName(part);
       String key = varName == null ? part : "";
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/SolrQueuedThreadPool.java b/solr/solrj/src/java/org/apache/solr/common/util/SolrQueuedThreadPool.java
index 6cacefa..2c3eca1 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/SolrQueuedThreadPool.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/SolrQueuedThreadPool.java
@@ -699,11 +699,19 @@ public class SolrQueuedThreadPool extends ContainerLifeCycle implements ThreadFa
     @Override
     public Thread newThread(Runnable runnable)
     {
-        Thread thread = new Thread(_threadGroup, runnable) {
+        ThreadGroup group;
+
+        {
+            SecurityManager s = System.getSecurityManager();
+            group = (s != null) ?
+                s.getThreadGroup() :
+                Thread.currentThread().getThreadGroup();
+        }
+        Thread thread = new Thread(group, "") {
             @Override
             public void run() {
                 try {
-                    super.run();
+                    runnable.run();
                 } finally {
                     ParWork.closeExecutor();
                 }
diff --git a/solr/solrj/src/java/org/apache/solr/common/util/ValidatingJsonMap.java b/solr/solrj/src/java/org/apache/solr/common/util/ValidatingJsonMap.java
index d7397d0..2e113d0 100644
--- a/solr/solrj/src/java/org/apache/solr/common/util/ValidatingJsonMap.java
+++ b/solr/solrj/src/java/org/apache/solr/common/util/ValidatingJsonMap.java
@@ -32,6 +32,7 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
 
 import org.apache.solr.common.NavigableObject;
 import org.apache.solr.common.ParWork;
@@ -77,11 +78,11 @@ public class ValidatingJsonMap implements Map<String, Object>, NavigableObject {
   }
 
   public ValidatingJsonMap(int i) {
-    delegate = new LinkedHashMap<>(i);
+    delegate = new ConcurrentHashMap<>(i);
   }
 
   public ValidatingJsonMap() {
-    delegate = new LinkedHashMap<>();
+    delegate = new ConcurrentHashMap<>(32);
   }
 
   @Override