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