You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by no...@apache.org on 2022/02/07 03:00:39 UTC
[solr] branch jira/solr15963 created (now e398f7e)
This is an automated email from the ASF dual-hosted git repository.
noble pushed a change to branch jira/solr15963
in repository https://gitbox.apache.org/repos/asf/solr.git.
at e398f7e Refactor code to minimize access to SolrCore
This branch includes the following new commits:
new e398f7e Refactor code to minimize access to SolrCore
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
[solr] 01/01: Refactor code to minimize access to SolrCore
Posted by no...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
noble pushed a commit to branch jira/solr15963
in repository https://gitbox.apache.org/repos/asf/solr.git
commit e398f7e120914fceeb8b28098053599410e61c7c
Author: Noble Paul <no...@gmail.com>
AuthorDate: Mon Feb 7 14:00:26 2022 +1100
Refactor code to minimize access to SolrCore
---
.../solr/handler/component/AnalyticsComponent.java | 3 +-
.../LTRFeatureLoggerTransformerFactory.java | 10 +---
.../apache/solr/ltr/search/LTRQParserPlugin.java | 9 ++--
.../cloud/api/collections/CategoryRoutedAlias.java | 11 ++--
.../solr/cloud/api/collections/RoutedAlias.java | 14 ++----
.../cloud/api/collections/TimeRoutedAlias.java | 20 ++------
.../solr/handler/admin/ShowFileRequestHandler.java | 23 ++++-----
.../solr/handler/admin/SolrInfoMBeanHandler.java | 21 ++++----
.../solr/handler/admin/SystemInfoHandler.java | 47 +++++++-----------
.../solr/handler/component/HttpShardHandler.java | 13 +++--
.../java/org/apache/solr/request/SimpleFacets.java | 58 +++-------------------
.../org/apache/solr/request/SolrQueryRequest.java | 20 ++++++--
.../java/org/apache/solr/schema/SchemaManager.java | 14 ++----
.../org/apache/solr/search/JoinQParserPlugin.java | 3 +-
.../apache/solr/servlet/SolrRequestParsers.java | 32 +++++-------
.../org/apache/solr/update/AddUpdateCommand.java | 5 +-
.../processor/AtomicUpdateDocumentMerger.java | 18 ++-----
.../processor/DistributedUpdateProcessor.java | 21 ++------
.../DistributedUpdateProcessorFactory.java | 3 +-
.../processor/DistributedZkUpdateProcessor.java | 44 +++-------------
.../processor/RoutedAliasUpdateProcessor.java | 16 ++----
.../update/processor/TolerantUpdateProcessor.java | 12 ++---
22 files changed, 126 insertions(+), 291 deletions(-)
diff --git a/solr/contrib/analytics/src/java/org/apache/solr/handler/component/AnalyticsComponent.java b/solr/contrib/analytics/src/java/org/apache/solr/handler/component/AnalyticsComponent.java
index a743586..50609ea 100644
--- a/solr/contrib/analytics/src/java/org/apache/solr/handler/component/AnalyticsComponent.java
+++ b/solr/contrib/analytics/src/java/org/apache/solr/handler/component/AnalyticsComponent.java
@@ -17,7 +17,6 @@
package org.apache.solr.handler.component;
import java.io.IOException;
-
import org.apache.solr.analytics.AnalyticsDriver;
import org.apache.solr.analytics.AnalyticsRequestManager;
import org.apache.solr.analytics.AnalyticsRequestParser;
@@ -109,7 +108,7 @@ public class AnalyticsComponent extends SearchComponent {
// Send out a request to each shard and merge the responses into our AnalyticsRequestManager
reqManager.shardStream.sendRequests(rb.req.getCore().getCoreDescriptor().getCollectionName(),
- rb.req.getCore().getCoreContainer().getZkController().getZkServerAddress());
+ rb.req.getCoreContainer().getZkController().getZkServerAddress());
reqManager.sendShards = false;
diff --git a/solr/contrib/ltr/src/java/org/apache/solr/ltr/response/transform/LTRFeatureLoggerTransformerFactory.java b/solr/contrib/ltr/src/java/org/apache/solr/ltr/response/transform/LTRFeatureLoggerTransformerFactory.java
index 310efb6..65d6c5e 100644
--- a/solr/contrib/ltr/src/java/org/apache/solr/ltr/response/transform/LTRFeatureLoggerTransformerFactory.java
+++ b/solr/contrib/ltr/src/java/org/apache/solr/ltr/response/transform/LTRFeatureLoggerTransformerFactory.java
@@ -21,7 +21,6 @@ import java.util.Collections;
import java.util.List;
import java.util.Locale;
import java.util.Map;
-
import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.search.Explanation;
import org.apache.lucene.search.ScoreMode;
@@ -29,12 +28,7 @@ import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.NamedList;
-import org.apache.solr.ltr.CSVFeatureLogger;
-import org.apache.solr.ltr.FeatureLogger;
-import org.apache.solr.ltr.LTRRescorer;
-import org.apache.solr.ltr.LTRScoringQuery;
-import org.apache.solr.ltr.LTRThreadModule;
-import org.apache.solr.ltr.SolrQueryRequestContextUtils;
+import org.apache.solr.ltr.*;
import org.apache.solr.ltr.feature.Feature;
import org.apache.solr.ltr.interleaving.LTRInterleavingScoringQuery;
import org.apache.solr.ltr.interleaving.OriginalRankingLTRScoringQuery;
@@ -216,7 +210,7 @@ public class LTRFeatureLoggerTransformerFactory extends TransformerFactory {
}
leafContexts = searcher.getTopReaderContext().leaves();
if (threadManager != null) {
- threadManager.setExecutor(context.getRequest().getCore().getCoreContainer().getUpdateShardHandler().getUpdateExecutor());
+ threadManager.setExecutor(context.getRequest().getCoreContainer().getUpdateShardHandler().getUpdateExecutor());
}
rerankingQueriesFromContext = SolrQueryRequestContextUtils.getScoringQueries(req);
diff --git a/solr/contrib/ltr/src/java/org/apache/solr/ltr/search/LTRQParserPlugin.java b/solr/contrib/ltr/src/java/org/apache/solr/ltr/search/LTRQParserPlugin.java
index f29e7f3..77cbed5 100644
--- a/solr/contrib/ltr/src/java/org/apache/solr/ltr/search/LTRQParserPlugin.java
+++ b/solr/contrib/ltr/src/java/org/apache/solr/ltr/search/LTRQParserPlugin.java
@@ -20,21 +20,20 @@ import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
-
+import org.apache.lucene.search.Query;
import org.apache.lucene.util.ResourceLoader;
import org.apache.lucene.util.ResourceLoaderAware;
-import org.apache.lucene.search.Query;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.core.SolrResourceLoader;
-import org.apache.solr.ltr.interleaving.LTRInterleavingScoringQuery;
-import org.apache.solr.ltr.interleaving.OriginalRankingLTRScoringQuery;
import org.apache.solr.ltr.LTRScoringQuery;
import org.apache.solr.ltr.LTRThreadModule;
import org.apache.solr.ltr.SolrQueryRequestContextUtils;
import org.apache.solr.ltr.interleaving.Interleaving;
import org.apache.solr.ltr.interleaving.LTRInterleavingQuery;
+import org.apache.solr.ltr.interleaving.LTRInterleavingScoringQuery;
+import org.apache.solr.ltr.interleaving.OriginalRankingLTRScoringQuery;
import org.apache.solr.ltr.model.LTRScoringModel;
import org.apache.solr.ltr.store.rest.ManagedFeatureStore;
import org.apache.solr.ltr.store.rest.ManagedModelStore;
@@ -152,7 +151,7 @@ public class LTRQParserPlugin extends QParserPlugin implements ResourceLoaderAwa
@Override
public Query parse() throws SyntaxError {
if (threadManager != null) {
- threadManager.setExecutor(req.getCore().getCoreContainer().getUpdateShardHandler().getUpdateExecutor());
+ threadManager.setExecutor(req.getCoreContainer().getUpdateShardHandler().getUpdateExecutor());
}
// ReRanking Model
final String[] modelNames = localParams.getParams(LTRQParserPlugin.MODEL);
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/CategoryRoutedAlias.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/CategoryRoutedAlias.java
index 3e55863..61405bb 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/CategoryRoutedAlias.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/CategoryRoutedAlias.java
@@ -18,14 +18,9 @@
package org.apache.solr.cloud.api.collections;
import java.lang.invoke.MethodHandles;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
-
import org.apache.solr.client.solrj.RoutedAliasTypes;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrInputDocument;
@@ -121,7 +116,7 @@ public class CategoryRoutedAlias extends RoutedAlias {
@Override
public void validateRouteValue(AddUpdateCommand cmd) throws SolrException {
if (this.aliases == null) {
- updateParsedCollectionAliases(cmd.getReq().getCore().getCoreContainer().getZkController().zkStateReader, false);
+ updateParsedCollectionAliases(cmd.getReq().getCoreContainer().getZkController().zkStateReader, false);
}
Object fieldValue = cmd.getSolrInputDocument().getFieldValue(getRouteField());
@@ -225,7 +220,7 @@ public class CategoryRoutedAlias extends RoutedAlias {
public CandidateCollection findCandidateGivenValue(AddUpdateCommand cmd) {
Object value = cmd.getSolrInputDocument().getFieldValue(getRouteField());
String targetColName = buildCollectionNameFromValue(String.valueOf(value));
- ZkStateReader zkStateReader = cmd.getReq().getCore().getCoreContainer().getZkController().zkStateReader;
+ ZkStateReader zkStateReader = cmd.getReq().getCoreContainer().getZkController().zkStateReader;
updateParsedCollectionAliases(zkStateReader, true);
List<String> collectionList = getCollectionList(this.aliases);
if (collectionList.contains(targetColName)) {
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/RoutedAlias.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/RoutedAlias.java
index c72d16f..affb014 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/RoutedAlias.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/RoutedAlias.java
@@ -17,19 +17,11 @@
package org.apache.solr.cloud.api.collections;
+import com.google.common.collect.Sets;
import java.lang.invoke.MethodHandles;
import java.util.AbstractMap.SimpleEntry;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
+import java.util.*;
import java.util.stream.Collectors;
-
-import com.google.common.collect.Sets;
import org.apache.solr.client.solrj.RoutedAliasTypes;
import org.apache.solr.cloud.ZkController;
import org.apache.solr.common.SolrException;
@@ -324,7 +316,7 @@ public abstract class RoutedAlias {
SolrQueryRequest req = cmd.getReq();
SolrCore core = req.getCore();
- CoreContainer coreContainer = core.getCoreContainer();
+ CoreContainer coreContainer = req.getCoreContainer();
do {
switch (targetCollectionDesc.getCreationType()) {
case NONE:
diff --git a/solr/core/src/java/org/apache/solr/cloud/api/collections/TimeRoutedAlias.java b/solr/core/src/java/org/apache/solr/cloud/api/collections/TimeRoutedAlias.java
index 3e6b31e..069dccd 100644
--- a/solr/core/src/java/org/apache/solr/cloud/api/collections/TimeRoutedAlias.java
+++ b/solr/core/src/java/org/apache/solr/cloud/api/collections/TimeRoutedAlias.java
@@ -17,6 +17,7 @@
package org.apache.solr.cloud.api.collections;
+import com.google.common.base.MoreObjects;
import java.lang.invoke.MethodHandles;
import java.text.ParseException;
import java.time.Instant;
@@ -27,20 +28,9 @@ import java.time.format.DateTimeFormatterBuilder;
import java.time.format.DateTimeParseException;
import java.time.temporal.ChronoField;
import java.time.temporal.ChronoUnit;
-import java.util.AbstractMap;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
-import java.util.TimeZone;
+import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
-
-import com.google.common.base.MoreObjects;
import org.apache.solr.client.solrj.RoutedAliasTypes;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrInputDocument;
@@ -58,9 +48,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
-import static org.apache.solr.cloud.api.collections.RoutedAlias.CreationType.ASYNC_PREEMPTIVE;
-import static org.apache.solr.cloud.api.collections.RoutedAlias.CreationType.NONE;
-import static org.apache.solr.cloud.api.collections.RoutedAlias.CreationType.SYNCHRONOUS;
+import static org.apache.solr.cloud.api.collections.RoutedAlias.CreationType.*;
import static org.apache.solr.common.SolrException.ErrorCode.BAD_REQUEST;
import static org.apache.solr.common.params.CollectionAdminParams.ROUTER_PREFIX;
import static org.apache.solr.common.params.CommonParams.TZ;
@@ -449,7 +437,7 @@ public class TimeRoutedAlias extends RoutedAlias {
@Override
public CandidateCollection findCandidateGivenValue(AddUpdateCommand cmd) {
Object value = cmd.getSolrInputDocument().getFieldValue(getRouteField());
- ZkStateReader zkStateReader = cmd.getReq().getCore().getCoreContainer().getZkController().zkStateReader;
+ ZkStateReader zkStateReader = cmd.getReq().getCoreContainer().getZkController().zkStateReader;
String printableId = cmd.getPrintableId();
updateParsedCollectionAliases(zkStateReader, true);
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/ShowFileRequestHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/ShowFileRequestHandler.java
index 0fd998d..35d3abd 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/ShowFileRequestHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/ShowFileRequestHandler.java
@@ -17,6 +17,13 @@
package org.apache.solr.handler.admin;
import com.google.common.base.Strings;
+import java.io.File;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.lang.invoke.MethodHandles;
+import java.net.URISyntaxException;
+import java.nio.file.Path;
+import java.util.*;
import org.apache.solr.cloud.ZkSolrResourceLoader;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
@@ -41,18 +48,6 @@ import org.eclipse.jetty.http.MimeTypes;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.File;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.lang.invoke.MethodHandles;
-import java.net.URISyntaxException;
-import java.nio.file.Path;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Locale;
-import java.util.Set;
-
/**
* This handler uses the RawResponseWriter to give client access to
* files inside ${solr.home}/conf
@@ -138,7 +133,7 @@ public class ShowFileRequestHandler extends RequestHandlerBase implements Permis
public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp)
throws InterruptedException, KeeperException, IOException {
- CoreContainer coreContainer = req.getCore().getCoreContainer();
+ CoreContainer coreContainer = req.getCoreContainer();
if (coreContainer.isZooKeeperAware()) {
showFromZooKeeper(req, rsp, coreContainer);
} else {
@@ -377,7 +372,7 @@ public class ShowFileRequestHandler extends RequestHandlerBase implements Permis
}
// A leading slash is unnecessary but supported and interpreted as start of config dir
Path filePath = configdir.toPath().resolve(fname.startsWith("/") ? fname.substring(1) : fname);
- req.getCore().getCoreContainer().assertPathAllowed(filePath);
+ req.getCoreContainer().assertPathAllowed(filePath);
adminFile = filePath.toFile();
}
return adminFile;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/SolrInfoMBeanHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/SolrInfoMBeanHandler.java
index bbf3c30..6bc3ae5 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/SolrInfoMBeanHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/SolrInfoMBeanHandler.java
@@ -16,26 +16,25 @@
*/
package org.apache.solr.handler.admin;
+import java.io.StringReader;
+import java.text.NumberFormat;
+import java.util.HashSet;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
import org.apache.commons.io.IOUtils;
-import org.apache.solr.handler.RequestHandlerBase;
-import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.client.solrj.impl.XMLResponseParser;
-import org.apache.solr.core.SolrInfoBean;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
import org.apache.solr.common.util.ContentStream;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.SimpleOrderedMap;
+import org.apache.solr.core.SolrInfoBean;
+import org.apache.solr.handler.RequestHandlerBase;
+import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.response.BinaryResponseWriter;
import org.apache.solr.response.SolrQueryResponse;
-import java.io.StringReader;
-import java.text.NumberFormat;
-import java.util.Locale;
-import java.util.Set;
-import java.util.Map;
-import java.util.HashSet;
-
/**
* A request handler that provides info about all
* registered SolrInfoMBeans.
@@ -131,7 +130,7 @@ public class SolrInfoMBeanHandler extends RequestHandlerBase {
addMBean(req, cats, requestedKeys, entry.getKey(),entry.getValue());
}
- for (SolrInfoBean infoMBean : req.getCore().getCoreContainer().getResourceLoader().getInfoMBeans()) {
+ for (SolrInfoBean infoMBean : req.getCoreContainer().getResourceLoader().getInfoMBeans()) {
addMBean(req,cats,requestedKeys,infoMBean.getName(),infoMBean);
}
return cats;
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java
index 033b9d3..b217f5b 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java
@@ -17,6 +17,16 @@
package org.apache.solr.handler.admin;
import com.codahale.metrics.Gauge;
+import java.io.File;
+import java.io.IOException;
+import java.lang.invoke.MethodHandles;
+import java.lang.management.ManagementFactory;
+import java.lang.management.OperatingSystemMXBean;
+import java.lang.management.RuntimeMXBean;
+import java.net.InetAddress;
+import java.text.DecimalFormat;
+import java.text.DecimalFormatSymbols;
+import java.util.*;
import org.apache.lucene.util.Version;
import org.apache.solr.api.AnnotatedApi;
import org.apache.solr.api.Api;
@@ -37,22 +47,6 @@ import org.apache.solr.util.stats.MetricUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.io.File;
-import java.io.IOException;
-import java.lang.invoke.MethodHandles;
-import java.lang.management.ManagementFactory;
-import java.lang.management.OperatingSystemMXBean;
-import java.lang.management.RuntimeMXBean;
-import java.net.InetAddress;
-import java.text.DecimalFormat;
-import java.text.DecimalFormatSymbols;
-import java.util.Collection;
-import java.util.Date;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Locale;
-import java.util.Set;
-
import static org.apache.solr.common.params.CommonParams.NAME;
@@ -135,14 +129,14 @@ public class SystemInfoHandler extends RequestHandlerBase
{
rsp.setHttpCaching(false);
SolrCore core = req.getCore();
- if (AdminHandlersProxy.maybeProxyToNodes(req, rsp, getCoreContainer(req, core))) {
+ if (AdminHandlersProxy.maybeProxyToNodes(req, rsp, getCoreContainer(req))) {
return; // Request was proxied to other node
}
if (core != null) rsp.add( "core", getCoreInfo( core, req.getSchema() ) );
- boolean solrCloudMode = getCoreContainer(req, core).isZooKeeperAware();
+ boolean solrCloudMode = getCoreContainer(req).isZooKeeperAware();
rsp.add( "mode", solrCloudMode ? "solrcloud" : "std");
if (solrCloudMode) {
- rsp.add("zkHost", getCoreContainer(req, core).getZkController().getZkServerAddress());
+ rsp.add("zkHost", getCoreContainer(req).getZkController().getZkServerAddress());
}
if (cc != null) {
rsp.add("solr_home", cc.getSolrHome());
@@ -154,10 +148,10 @@ public class SystemInfoHandler extends RequestHandlerBase
rsp.add( "security", getSecurityInfo(req) );
rsp.add( "system", getSystemInfo() );
if (solrCloudMode) {
- rsp.add("node", getCoreContainer(req, core).getZkController().getNodeName());
+ rsp.add("node", getCoreContainer(req).getZkController().getNodeName());
}
SolrEnvironment env = SolrEnvironment.getFromSyspropOrClusterprop(solrCloudMode ?
- getCoreContainer(req, core).getZkController().zkStateReader : null);
+ getCoreContainer(req).getZkController().zkStateReader : null);
if (env.isDefined()) {
rsp.add("environment", env.getCode());
if (env.getLabel() != null) {
@@ -169,14 +163,9 @@ public class SystemInfoHandler extends RequestHandlerBase
}
}
- private CoreContainer getCoreContainer(SolrQueryRequest req, SolrCore core) {
- CoreContainer coreContainer;
- if (core != null) {
- coreContainer = req.getCore().getCoreContainer();
- } else {
- coreContainer = cc;
- }
- return coreContainer;
+ private CoreContainer getCoreContainer(SolrQueryRequest req) {
+ CoreContainer coreContainer = req.getCoreContainer();
+ return coreContainer ==null? cc: coreContainer;
}
/**
diff --git a/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java b/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java
index 8a32581..3e3026d 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java
@@ -16,6 +16,9 @@
*/
package org.apache.solr.handler.component;
+import io.opentracing.Span;
+import io.opentracing.Tracer;
+import io.opentracing.propagation.Format;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -23,18 +26,14 @@ import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
-
-import io.opentracing.Span;
-import io.opentracing.Tracer;
-import io.opentracing.propagation.Format;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrResponse;
import org.apache.solr.client.solrj.impl.LBHttp2SolrClient;
import org.apache.solr.client.solrj.impl.LBSolrClient;
import org.apache.solr.client.solrj.request.QueryRequest;
import org.apache.solr.client.solrj.routing.ReplicaListTransformer;
-import org.apache.solr.client.solrj.util.Cancellable;
import org.apache.solr.client.solrj.util.AsyncListener;
+import org.apache.solr.client.solrj.util.Cancellable;
import org.apache.solr.cloud.CloudDescriptor;
import org.apache.solr.cloud.ZkController;
import org.apache.solr.common.SolrException;
@@ -263,11 +262,11 @@ public class HttpShardHandler extends ShardHandler {
CoreDescriptor coreDescriptor = req.getCore().getCoreDescriptor();
CloudDescriptor cloudDescriptor = coreDescriptor.getCloudDescriptor();
- ZkController zkController = req.getCore().getCoreContainer().getZkController();
+ ZkController zkController = req.getCoreContainer().getZkController();
final ReplicaListTransformer replicaListTransformer = httpShardHandlerFactory.getReplicaListTransformer(req);
- AllowListUrlChecker urlChecker = req.getCore().getCoreContainer().getAllowListUrlChecker();
+ AllowListUrlChecker urlChecker = req.getCoreContainer().getAllowListUrlChecker();
if (shards != null && zkController == null && urlChecker.isEnabled() && !urlChecker.hasExplicitAllowList()) {
throw new SolrException(SolrException.ErrorCode.FORBIDDEN,
"solr.xml property '" + AllowListUrlChecker.URL_ALLOW_LIST
diff --git a/solr/core/src/java/org/apache/solr/request/SimpleFacets.java b/solr/core/src/java/org/apache/solr/request/SimpleFacets.java
index 099000a..1330b11 100644
--- a/solr/core/src/java/org/apache/solr/request/SimpleFacets.java
+++ b/solr/core/src/java/org/apache/solr/request/SimpleFacets.java
@@ -19,39 +19,13 @@ package org.apache.solr.request;
import java.io.IOException;
import java.lang.invoke.MethodHandles;
import java.util.AbstractMap.SimpleImmutableEntry;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.IdentityHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.Executor;
-import java.util.concurrent.Future;
-import java.util.concurrent.FutureTask;
-import java.util.concurrent.RunnableFuture;
-import java.util.concurrent.Semaphore;
+import java.util.*;
+import java.util.concurrent.*;
import java.util.function.Predicate;
import java.util.stream.Stream;
-
import org.apache.commons.lang3.ArrayUtils;
-import org.apache.lucene.index.ExitableDirectoryReader;
-import org.apache.lucene.index.LeafReader;
-import org.apache.lucene.index.LeafReaderContext;
-import org.apache.lucene.index.MultiPostingsEnum;
-import org.apache.lucene.index.MultiTerms;
-import org.apache.lucene.index.PostingsEnum;
-import org.apache.lucene.index.Terms;
-import org.apache.lucene.index.TermsEnum;
-import org.apache.lucene.search.Collector;
-import org.apache.lucene.search.DocIdSetIterator;
-import org.apache.lucene.search.FilterCollector;
-import org.apache.lucene.search.LeafCollector;
-import org.apache.lucene.search.Query;
+import org.apache.lucene.index.*;
+import org.apache.lucene.search.*;
import org.apache.lucene.search.grouping.AllGroupHeadsCollector;
import org.apache.lucene.search.grouping.AllGroupsCollector;
import org.apache.lucene.search.grouping.TermGroupFacetCollector;
@@ -62,31 +36,15 @@ import org.apache.lucene.util.CharsRefBuilder;
import org.apache.lucene.util.StringHelper;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
-import org.apache.solr.common.params.CommonParams;
-import org.apache.solr.common.params.FacetParams;
-import org.apache.solr.common.params.GroupParams;
-import org.apache.solr.common.params.RequiredSolrParams;
-import org.apache.solr.common.params.SolrParams;
+import org.apache.solr.common.params.*;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.SimpleOrderedMap;
import org.apache.solr.common.util.StrUtils;
import org.apache.solr.handler.component.ResponseBuilder;
import org.apache.solr.handler.component.SpatialHeatmapFacets;
import org.apache.solr.request.IntervalFacets.FacetInterval;
-import org.apache.solr.schema.BoolField;
-import org.apache.solr.schema.FieldType;
-import org.apache.solr.schema.IndexSchema;
-import org.apache.solr.schema.SchemaField;
-import org.apache.solr.schema.TrieField;
-import org.apache.solr.search.BitDocSet;
-import org.apache.solr.search.DocSet;
-import org.apache.solr.search.Grouping;
-import org.apache.solr.search.NumericHidingLeafReader;
-import org.apache.solr.search.QParser;
-import org.apache.solr.search.QueryParsing;
-import org.apache.solr.search.QueryUtils;
-import org.apache.solr.search.SolrIndexSearcher;
-import org.apache.solr.search.SyntaxError;
+import org.apache.solr.schema.*;
+import org.apache.solr.search.*;
import org.apache.solr.search.facet.FacetDebugInfo;
import org.apache.solr.search.facet.FacetRequest;
import org.apache.solr.search.grouping.GroupingSpecification;
@@ -167,7 +125,7 @@ public class SimpleFacets {
this.docsOrig = docs;
this.global = params;
this.rb = rb;
- this.facetExecutor = req.getCore().getCoreContainer().getUpdateShardHandler().getUpdateExecutor();
+ this.facetExecutor = req.getCoreContainer().getUpdateShardHandler().getUpdateExecutor();
}
public void setFacetDebugInfo(FacetDebugInfo fdebugParent) {
diff --git a/solr/core/src/java/org/apache/solr/request/SolrQueryRequest.java b/solr/core/src/java/org/apache/solr/request/SolrQueryRequest.java
index f472040..5a8dc94 100644
--- a/solr/core/src/java/org/apache/solr/request/SolrQueryRequest.java
+++ b/solr/core/src/java/org/apache/solr/request/SolrQueryRequest.java
@@ -16,18 +16,19 @@
*/
package org.apache.solr.request;
-import java.security.Principal;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
import io.opentracing.Span;
import io.opentracing.Tracer;
import io.opentracing.noop.NoopSpan;
import io.opentracing.util.GlobalTracer;
+import java.security.Principal;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import org.apache.solr.cloud.CloudDescriptor;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.util.CommandOperation;
import org.apache.solr.common.util.ContentStream;
+import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.SolrCore;
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.search.SolrIndexSearcher;
@@ -153,6 +154,15 @@ public interface SolrQueryRequest extends AutoCloseable {
default Span getSpan() {
return NoopSpan.INSTANCE;
}
+
+ default CoreContainer getCoreContainer() {
+ SolrCore core = getCore();
+ return core == null ? null : core.getCoreContainer();
+ }
+
+ default CloudDescriptor getCloudDescriptor() {
+ return getCore().getCoreDescriptor().getCloudDescriptor();
+ }
}
diff --git a/solr/core/src/java/org/apache/solr/schema/SchemaManager.java b/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
index 03bdde2..52aa36f 100644
--- a/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
+++ b/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
@@ -16,6 +16,8 @@
*/
package org.apache.solr.schema;
+import static java.util.Collections.*;
+
import java.io.IOException;
import java.io.InputStream;
import java.io.StringWriter;
@@ -26,7 +28,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
-
import org.apache.solr.cloud.ZkController;
import org.apache.solr.cloud.ZkSolrResourceLoader;
import org.apache.solr.common.SolrException;
@@ -43,15 +44,8 @@ import org.apache.zookeeper.KeeperException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static java.util.Collections.singleton;
-import static java.util.Collections.singletonList;
-import static java.util.Collections.singletonMap;
import static org.apache.solr.schema.FieldType.CLASS_NAME;
-import static org.apache.solr.schema.IndexSchema.DESTINATION;
-import static org.apache.solr.schema.IndexSchema.MAX_CHARS;
-import static org.apache.solr.schema.IndexSchema.NAME;
-import static org.apache.solr.schema.IndexSchema.SOURCE;
-import static org.apache.solr.schema.IndexSchema.TYPE;
+import static org.apache.solr.schema.IndexSchema.*;
/**
* A utility class to manipulate schema using the bulk mode.
@@ -129,7 +123,7 @@ public class SchemaManager {
latestVersion = ZkController.persistConfigResourceToZooKeeper
(zkLoader, managedIndexSchema.getSchemaZkVersion(), managedIndexSchema.getResourceName(),
sw.toString().getBytes(StandardCharsets.UTF_8), true);
- req.getCore().getCoreContainer().reload(req.getCore().getName(), req.getCore().uniqueId);
+ req.getCoreContainer().reload(req.getCore().getName(), req.getCore().uniqueId);
break;
} catch (ZkController.ResourceModifiedInZkException e) {
log.info("Schema was modified by another node. Retrying..");
diff --git a/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java
index 7361b98..1b6fdf5 100644
--- a/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java
@@ -20,7 +20,6 @@ import java.util.Collection;
import java.util.EnumSet;
import java.util.HashSet;
import java.util.Set;
-
import org.apache.lucene.search.Query;
import org.apache.lucene.search.join.ScoreMode;
import org.apache.solr.common.SolrException;
@@ -137,7 +136,7 @@ public class JoinQParserPlugin extends QParserPlugin {
long fromCoreOpenTime = 0;
if (fromIndex != null && !fromIndex.equals(qparser.req.getCore().getCoreDescriptor().getName()) ) {
- CoreContainer container = qparser.req.getCore().getCoreContainer();
+ CoreContainer container = qparser.req.getCoreContainer();
// if in SolrCloud mode, fromIndex should be the name of a single-sharded collection
coreName = ScoreJoinQParserPlugin.getCoreName(fromIndex, container);
diff --git a/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java b/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
index 8685191..867b210 100644
--- a/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
+++ b/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
@@ -20,29 +20,14 @@ import javax.servlet.MultipartConfigElement;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.Part;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PushbackInputStream;
+
+import java.io.*;
import java.lang.invoke.MethodHandles;
import java.net.URL;
import java.nio.ByteBuffer;
-import java.nio.charset.CharacterCodingException;
-import java.nio.charset.Charset;
-import java.nio.charset.CharsetDecoder;
-import java.nio.charset.CodingErrorAction;
-import java.nio.charset.StandardCharsets;
+import java.nio.charset.*;
import java.security.Principal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
+import java.util.*;
import org.apache.commons.io.input.CloseShieldInputStream;
import org.apache.lucene.util.IOUtils;
import org.apache.solr.api.V2HttpCall;
@@ -55,6 +40,7 @@ import org.apache.solr.common.util.CommandOperation;
import org.apache.solr.common.util.ContentStream;
import org.apache.solr.common.util.ContentStreamBase;
import org.apache.solr.common.util.FastInputStream;
+import org.apache.solr.core.CoreContainer;
import org.apache.solr.core.RequestHandlers;
import org.apache.solr.core.SolrConfig;
import org.apache.solr.core.SolrCore;
@@ -247,6 +233,14 @@ public class SolrRequestParsers {
}
@Override
+ public CoreContainer getCoreContainer() {
+ return httpSolrCall != null ?
+ httpSolrCall.cores :
+ super.getCoreContainer();
+ }
+
+
+ @Override
public List<CommandOperation> getCommands(boolean validateInput) {
if (httpSolrCall != null) {
return httpSolrCall.getCommands(validateInput);
diff --git a/solr/core/src/java/org/apache/solr/update/AddUpdateCommand.java b/solr/core/src/java/org/apache/solr/update/AddUpdateCommand.java
index 2de9e6b..6eddd46 100644
--- a/solr/core/src/java/org/apache/solr/update/AddUpdateCommand.java
+++ b/solr/core/src/java/org/apache/solr/update/AddUpdateCommand.java
@@ -16,12 +16,11 @@
*/
package org.apache.solr.update;
+import com.google.common.annotations.VisibleForTesting;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
-
-import com.google.common.annotations.VisibleForTesting;
import org.apache.lucene.document.Document;
import org.apache.lucene.index.Term;
import org.apache.lucene.util.BytesRef;
@@ -90,7 +89,7 @@ public class AddUpdateCommand extends UpdateCommand {
// use route but there's one last exclusion: It's incompatible with SolrCloud implicit router.
String collectionName = req.getCore().getCoreDescriptor().getCollectionName();
if (collectionName != null) {
- DocRouter router = req.getCore().getCoreContainer().getZkController().getClusterState()
+ DocRouter router = req.getCoreContainer().getZkController().getClusterState()
.getCollection(collectionName).getRouter();
if (router instanceof ImplicitDocRouter) {
route = null;
diff --git a/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateDocumentMerger.java b/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateDocumentMerger.java
index f2ac4cc..43020cb 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateDocumentMerger.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/AtomicUpdateDocumentMerger.java
@@ -18,24 +18,13 @@ package org.apache.solr.update.processor;
import java.io.IOException;
import java.lang.invoke.MethodHandles;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
import java.util.Map.Entry;
-import java.util.Optional;
-import java.util.Set;
import java.util.function.BiConsumer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.Stream;
-
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.BytesRefBuilder;
@@ -320,11 +309,10 @@ public class AtomicUpdateDocumentMerger {
private static String getRouteField(AddUpdateCommand cmd) {
String result = null;
- SolrCore core = cmd.getReq().getCore();
- CloudDescriptor cloudDescriptor = core.getCoreDescriptor().getCloudDescriptor();
+ CloudDescriptor cloudDescriptor = cmd.getReq().getCloudDescriptor();
if (cloudDescriptor != null) {
String collectionName = cloudDescriptor.getCollectionName();
- ZkController zkController = core.getCoreContainer().getZkController();
+ ZkController zkController = cmd.getReq().getCoreContainer().getZkController();
DocCollection collection = zkController.getClusterState().getCollection(collectionName);
result = collection.getRouter().getRouteField(collection);
}
diff --git a/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java b/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
index 4802134..3029c39 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
@@ -16,13 +16,12 @@
*/
package org.apache.solr.update.processor;
+import com.google.common.annotations.VisibleForTesting;
import java.io.IOException;
import java.lang.invoke.MethodHandles;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
-
-import com.google.common.annotations.VisibleForTesting;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.CharsRefBuilder;
import org.apache.solr.client.solrj.SolrRequest;
@@ -36,11 +35,7 @@ import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.SolrInputField;
import org.apache.solr.common.cloud.DocCollection;
import org.apache.solr.common.cloud.Replica;
-import org.apache.solr.common.params.CommonParams;
-import org.apache.solr.common.params.ModifiableSolrParams;
-import org.apache.solr.common.params.ShardParams;
-import org.apache.solr.common.params.SolrParams;
-import org.apache.solr.common.params.UpdateParams;
+import org.apache.solr.common.params.*;
import org.apache.solr.common.util.Hash;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.TimeSource;
@@ -48,17 +43,9 @@ import org.apache.solr.handler.component.RealTimeGetComponent;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.response.SolrQueryResponse;
import org.apache.solr.schema.SchemaField;
-import org.apache.solr.update.AddUpdateCommand;
-import org.apache.solr.update.CommitUpdateCommand;
-import org.apache.solr.update.DeleteUpdateCommand;
-import org.apache.solr.update.SolrCmdDistributor;
+import org.apache.solr.update.*;
import org.apache.solr.update.SolrCmdDistributor.Error;
import org.apache.solr.update.SolrCmdDistributor.Node;
-import org.apache.solr.update.UpdateCommand;
-import org.apache.solr.update.UpdateLog;
-import org.apache.solr.update.UpdateShardHandler;
-import org.apache.solr.update.VersionBucket;
-import org.apache.solr.update.VersionInfo;
import org.apache.solr.util.TestInjection;
import org.apache.solr.util.TimeOut;
import org.slf4j.Logger;
@@ -631,7 +618,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
*/
private UpdateCommand fetchFullUpdateFromLeader(AddUpdateCommand inplaceAdd, long versionOnUpdate) throws IOException {
String id = inplaceAdd.getIndexedIdStr();
- UpdateShardHandler updateShardHandler = inplaceAdd.getReq().getCore().getCoreContainer().getUpdateShardHandler();
+ UpdateShardHandler updateShardHandler = inplaceAdd.getReq().getCoreContainer().getUpdateShardHandler();
ModifiableSolrParams params = new ModifiableSolrParams();
params.set(DISTRIB, false);
params.set("getInputDocument", id);
diff --git a/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessorFactory.java
index 93c1bf2..ee611e5 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessorFactory.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessorFactory.java
@@ -19,7 +19,6 @@ package org.apache.solr.update.processor;
import java.util.Collections;
import java.util.Set;
import java.util.TreeSet;
-
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.response.SolrQueryResponse;
@@ -50,7 +49,7 @@ public class DistributedUpdateProcessorFactory
public UpdateRequestProcessor getInstance(SolrQueryRequest req,
SolrQueryResponse rsp, UpdateRequestProcessor next) {
- final boolean isZkAware = req.getCore().getCoreContainer().isZooKeeperAware();
+ final boolean isZkAware = req.getCoreContainer().isZooKeeperAware();
DistributedUpdateProcessor distribUpdateProcessor =
isZkAware ?
diff --git a/solr/core/src/java/org/apache/solr/update/processor/DistributedZkUpdateProcessor.java b/solr/core/src/java/org/apache/solr/update/processor/DistributedZkUpdateProcessor.java
index c58bca8..53f5bbb 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/DistributedZkUpdateProcessor.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/DistributedZkUpdateProcessor.java
@@ -19,39 +19,16 @@ package org.apache.solr.update.processor;
import java.io.IOException;
import java.lang.invoke.MethodHandles;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.EnumSet;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReentrantLock;
-
import org.apache.solr.client.solrj.request.UpdateRequest;
-import org.apache.solr.cloud.CloudDescriptor;
-import org.apache.solr.cloud.DistributedClusterStateUpdater;
-import org.apache.solr.cloud.Overseer;
-import org.apache.solr.cloud.ZkController;
-import org.apache.solr.cloud.ZkShardTerms;
+import org.apache.solr.cloud.*;
import org.apache.solr.cloud.overseer.OverseerAction;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
import org.apache.solr.common.SolrInputDocument;
-import org.apache.solr.common.cloud.ClusterState;
-import org.apache.solr.common.cloud.CompositeIdRouter;
-import org.apache.solr.common.cloud.DocCollection;
-import org.apache.solr.common.cloud.DocRouter;
-import org.apache.solr.common.cloud.Replica;
-import org.apache.solr.common.cloud.RoutingRule;
-import org.apache.solr.common.cloud.Slice;
-import org.apache.solr.common.cloud.ZkCoreNodeProps;
-import org.apache.solr.common.cloud.ZkNodeProps;
-import org.apache.solr.common.cloud.ZkStateReader;
-import org.apache.solr.common.cloud.ZooKeeperException;
+import org.apache.solr.common.cloud.*;
import org.apache.solr.common.params.CommonParams;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.params.ShardParams;
@@ -60,14 +37,7 @@ import org.apache.solr.common.util.Utils;
import org.apache.solr.core.CoreContainer;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.response.SolrQueryResponse;
-import org.apache.solr.update.AddUpdateCommand;
-import org.apache.solr.update.CommitUpdateCommand;
-import org.apache.solr.update.DeleteUpdateCommand;
-import org.apache.solr.update.MergeIndexesCommand;
-import org.apache.solr.update.RollbackUpdateCommand;
-import org.apache.solr.update.SolrCmdDistributor;
-import org.apache.solr.update.SolrIndexSplitter;
-import org.apache.solr.update.UpdateCommand;
+import org.apache.solr.update.*;
import org.apache.solr.util.TestInjection;
import org.apache.zookeeper.KeeperException;
import org.slf4j.Logger;
@@ -111,8 +81,8 @@ public class DistributedZkUpdateProcessor extends DistributedUpdateProcessor {
public DistributedZkUpdateProcessor(SolrQueryRequest req,
SolrQueryResponse rsp, UpdateRequestProcessor next) {
super(req, rsp, next);
- CoreContainer cc = req.getCore().getCoreContainer();
- cloudDesc = req.getCore().getCoreDescriptor().getCloudDescriptor();
+ CoreContainer cc = req.getCoreContainer();
+ cloudDesc = req.getCloudDescriptor();
zkController = cc.getZkController();
distributedClusterStateUpdater = zkController.getDistributedClusterStateUpdater();
cmdDistrib = new SolrCmdDistributor(cc.getUpdateShardHandler());
@@ -1246,7 +1216,7 @@ public class DistributedZkUpdateProcessor extends DistributedUpdateProcessor {
// Streaming updates can delay shutdown and cause big update reorderings (new streams can't be
// initiated, but existing streams carry on). This is why we check if the CC is shutdown.
// See SOLR-8203 and loop HdfsChaosMonkeyNothingIsSafeTest (and check for inconsistent shards) to test.
- if (req.getCore().getCoreContainer().isShutDown()) {
+ if (req.getCoreContainer().isShutDown()) {
throw new SolrException(SolrException.ErrorCode.SERVICE_UNAVAILABLE, "CoreContainer is shutting down.");
}
diff --git a/solr/core/src/java/org/apache/solr/update/processor/RoutedAliasUpdateProcessor.java b/solr/core/src/java/org/apache/solr/update/processor/RoutedAliasUpdateProcessor.java
index d95f946..f3d99cb 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/RoutedAliasUpdateProcessor.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/RoutedAliasUpdateProcessor.java
@@ -23,19 +23,13 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
-
import org.apache.commons.lang3.StringUtils;
import org.apache.solr.cloud.CloudDescriptor;
import org.apache.solr.cloud.ZkController;
import org.apache.solr.cloud.api.collections.RoutedAlias;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrInputDocument;
-import org.apache.solr.common.cloud.Aliases;
-import org.apache.solr.common.cloud.DocCollection;
-import org.apache.solr.common.cloud.Replica;
-import org.apache.solr.common.cloud.Slice;
-import org.apache.solr.common.cloud.ZkCoreNodeProps;
-import org.apache.solr.common.cloud.ZkStateReader;
+import org.apache.solr.common.cloud.*;
import org.apache.solr.common.params.ModifiableSolrParams;
import org.apache.solr.common.params.SolrParams;
import org.apache.solr.common.params.UpdateParams;
@@ -96,7 +90,7 @@ public class RoutedAliasUpdateProcessor extends UpdateRequestProcessor {
CloudDescriptor cloudDescriptor = coreDescriptor.getCloudDescriptor();
if (cloudDescriptor != null) {
String collectionName = cloudDescriptor.getCollectionName();
- CoreContainer coreContainer = core.getCoreContainer();
+ CoreContainer coreContainer = req.getCoreContainer();
ZkController zkController = coreContainer.getZkController();
ZkStateReader zkStateReader = zkController.getZkStateReader();
Map<String, String> collectionProperties = zkStateReader.getCollectionProperties(collectionName, CACHE_FOR_MILLIS);
@@ -127,7 +121,7 @@ public class RoutedAliasUpdateProcessor extends UpdateRequestProcessor {
}
private static Map<String, String> getAliasProps(SolrQueryRequest req, String aliasName) {
- ZkController zkController = req.getCore().getCoreContainer().getZkController();
+ ZkController zkController = req.getCoreContainer().getZkController();
final Map<String, String> aliasProperties = zkController.getZkStateReader().getAliases().getCollectionAliasProperties(aliasName);
if (aliasProperties.isEmpty()) {
throw RoutedAlias.newAliasMustExistException(aliasName); // if it did exist, we'd have a non-null map
@@ -141,8 +135,8 @@ public class RoutedAliasUpdateProcessor extends UpdateRequestProcessor {
this.routedAlias = routedAlias;
assert aliasDistribPhase == DistribPhase.NONE;
final SolrCore core = req.getCore();
- final CoreContainer cc = core.getCoreContainer();
- this.thisCollection = core.getCoreDescriptor().getCloudDescriptor().getCollectionName();
+ final CoreContainer cc = req.getCoreContainer();
+ this.thisCollection = req.getCloudDescriptor().getCollectionName();
this.req = req;
this.zkController = cc.getZkController();
this.cmdDistrib = new SolrCmdDistributor(cc.getUpdateShardHandler());
diff --git a/solr/core/src/java/org/apache/solr/update/processor/TolerantUpdateProcessor.java b/solr/core/src/java/org/apache/solr/update/processor/TolerantUpdateProcessor.java
index d0cc6d7..f83f1de 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/TolerantUpdateProcessor.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/TolerantUpdateProcessor.java
@@ -17,12 +17,11 @@
package org.apache.solr.update.processor;
import java.io.IOException;
+import java.lang.invoke.MethodHandles;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import java.lang.invoke.MethodHandles;
-
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.CharsRefBuilder;
import org.apache.solr.cloud.ZkController;
@@ -34,14 +33,9 @@ import org.apache.solr.common.util.NamedList;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.response.SolrQueryResponse;
import org.apache.solr.schema.SchemaField;
-import org.apache.solr.update.AddUpdateCommand;
-import org.apache.solr.update.CommitUpdateCommand;
-import org.apache.solr.update.DeleteUpdateCommand;
-import org.apache.solr.update.MergeIndexesCommand;
-import org.apache.solr.update.RollbackUpdateCommand;
+import org.apache.solr.update.*;
import org.apache.solr.update.SolrCmdDistributor.Error;
import org.apache.solr.update.processor.DistributedUpdateProcessor.DistribPhase;
-
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -134,7 +128,7 @@ public class TolerantUpdateProcessor extends UpdateRequestProcessor {
this.distribPhase = distribPhase;
assert ! DistribPhase.FROMLEADER.equals(distribPhase);
- this.zkController = this.req.getCore().getCoreContainer().getZkController();
+ this.zkController = this.req.getCoreContainer().getZkController();
this.uniqueKeyField = this.req.getCore().getLatestSchema().getUniqueKeyField();
assert null != uniqueKeyField : "Factory didn't enforce uniqueKey field?";
}