This is an automated email from the ASF dual-hosted git repository. noble pushed a commit to branch jira/SOLR15715 in repository https://gitbox.apache.org/repos/asf/solr.git
commit 34e8f3905c9c0ebc729b574b43440be2539d3e4d Author: Noble Paul <[email protected]> AuthorDate: Mon Jan 3 15:10:19 2022 +1100 refactor to minimize access to core --- .../solr/handler/component/AnalyticsComponent.java | 2 +- .../transform/LTRFeatureLoggerTransformerFactory.java | 2 +- .../org/apache/solr/ltr/search/LTRQParserPlugin.java | 2 +- .../cloud/api/collections/CategoryRoutedAlias.java | 4 ++-- .../apache/solr/cloud/api/collections/RoutedAlias.java | 14 ++++++-------- .../solr/cloud/api/collections/TimeRoutedAlias.java | 7 +++---- .../org/apache/solr/handler/RequestHandlerBase.java | 4 ++-- .../solr/handler/component/HttpShardHandler.java | 6 +++--- .../handler/component/HttpShardHandlerFactory.java | 4 ++-- .../apache/solr/handler/component/QueryComponent.java | 4 ++-- .../solr/handler/component/RealTimeGetComponent.java | 8 ++++---- .../apache/solr/handler/component/SearchHandler.java | 4 ++-- .../solr/handler/component/TaskManagementHandler.java | 2 +- .../src/java/org/apache/solr/request/SimpleFacets.java | 2 +- .../java/org/apache/solr/request/SolrQueryRequest.java | 18 ++++++++++++++++++ .../java/org/apache/solr/search/JoinQParserPlugin.java | 2 +- .../solr/search/join/ScoreJoinQParserPlugin.java | 4 ++-- .../org/apache/solr/search/stats/ExactStatsCache.java | 6 +++--- .../java/org/apache/solr/update/AddUpdateCommand.java | 4 ++-- .../processor/DistributedUpdateProcessorFactory.java | 2 +- .../update/processor/DistributedZkUpdateProcessor.java | 10 +++++----- .../update/processor/RoutedAliasUpdateProcessor.java | 2 +- .../solr/update/processor/TolerantUpdateProcessor.java | 2 +- 23 files changed, 65 insertions(+), 50 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..90ac4c5 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 @@ -109,7 +109,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..04f4980 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 @@ -216,7 +216,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..592f94c 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 @@ -152,7 +152,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..8600eb8 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 @@ -121,7 +121,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 +225,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..86cbf90 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 @@ -322,9 +322,7 @@ public abstract class RoutedAlias { */ private String createAllRequiredCollections(AddUpdateCommand cmd, CandidateCollection targetCollectionDesc) { - SolrQueryRequest req = cmd.getReq(); - SolrCore core = req.getCore(); - CoreContainer coreContainer = core.getCoreContainer(); + CoreContainer coreContainer = cmd.getReq().getCoreContainer(); do { switch (targetCollectionDesc.getCreationType()) { case NONE: @@ -333,7 +331,7 @@ public abstract class RoutedAlias { targetCollectionDesc = doSynchronous( cmd, targetCollectionDesc, coreContainer); break; case ASYNC_PREEMPTIVE: - return doPreemptive(targetCollectionDesc, core, coreContainer); + return doPreemptive(targetCollectionDesc, cmd.getReq(), coreContainer); default: throw unknownCreateType(); } @@ -354,7 +352,7 @@ public abstract class RoutedAlias { return targetCollectionDesc; } - private String doPreemptive(CandidateCollection targetCollectionDesc, SolrCore core, CoreContainer coreContainer) { + private String doPreemptive(CandidateCollection targetCollectionDesc, SolrQueryRequest req, CoreContainer coreContainer) { if (!this.preemptiveCreateOnceAlready) { preemptiveAsync(() -> { @@ -363,7 +361,7 @@ public abstract class RoutedAlias { } catch (Exception e) { log.error("Async creation of a collection for routed Alias {} failed!", this.getAliasName(), e); } - }, core); + }, req); } return targetCollectionDesc.destinationCollection; } @@ -375,9 +373,9 @@ public abstract class RoutedAlias { */ abstract protected String getHeadCollectionIfOrdered(AddUpdateCommand cmd); - private void preemptiveAsync(Runnable r, SolrCore core) { + private void preemptiveAsync(Runnable r, SolrQueryRequest req) { preemptiveCreateOnceAlready = true; - core.runAsync(r); + req.runAsync(r); } private SolrException unknownCreateType() { 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..2e183a2 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 @@ -370,8 +370,7 @@ public class TimeRoutedAlias extends RoutedAlias { startTime = Instant.parse(start); } catch (DateTimeParseException e) { startTime = DateMathParser.parseMath(new Date(), start).toInstant(); - SolrCore core = cmd.getReq().getCore(); - ZkStateReader zkStateReader = core.getCoreContainer().getZkController().zkStateReader; + ZkStateReader zkStateReader = cmd.getReq().getCoreContainer().getZkController().zkStateReader; Aliases aliases = zkStateReader.getAliases(); Map<String, String> props = new HashMap<>(aliases.getCollectionAliasProperties(aliasName)); start = DateTimeFormatter.ISO_INSTANT.format(startTime); @@ -381,7 +380,7 @@ public class TimeRoutedAlias extends RoutedAlias { // should all be identical and who wins won't matter (baring cases of Date Math involving seconds, // which is pretty far fetched). Putting this in a separate thread to ensure that any failed // races don't cause documents to get rejected. - core.runAsync(() -> zkStateReader.aliasesManager.applyModificationAndExportToZk( + cmd.getReq().runAsync(() -> zkStateReader.aliasesManager.applyModificationAndExportToZk( (a) -> aliases.cloneWithCollectionAliasProperties(aliasName, props))); } @@ -449,7 +448,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/RequestHandlerBase.java b/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java index d761c55..f17e22f 100644 --- a/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java +++ b/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java @@ -188,7 +188,7 @@ public abstract class RequestHandlerBase implements SolrRequestHandler, SolrInfo requests.inc(); // requests are distributed by default when ZK is in use, unless indicated otherwise boolean distrib = req.getParams().getBool(CommonParams.DISTRIB, - req.getCore() != null ? req.getCore().getCoreContainer().isZooKeeperAware() : false); + req.getCoreContainer() != null ? req.getCoreContainer().isZooKeeperAware() : false); if (req.getParams().getBool(ShardParams.IS_SHARD, false)) { shardPurposes.computeIfAbsent("total", name -> new Counter()).inc(); int purpose = req.getParams().getInt(ShardParams.SHARDS_PURPOSE, 0); @@ -221,7 +221,7 @@ public abstract class RequestHandlerBase implements SolrRequestHandler, SolrInfo } } catch (Exception e) { if (req.getCore() != null) { - boolean isTragic = req.getCore().getCoreContainer().checkTragicException(req.getCore()); + boolean isTragic = req.getCoreContainer().checkTragicException(req.getCore()); if (isTragic) { if (e instanceof SolrException) { // Tragic exceptions should always throw a server error 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..76d4b02 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 @@ -262,12 +262,12 @@ public class HttpShardHandler extends ShardHandler { final String shards = params.get(ShardParams.SHARDS); CoreDescriptor coreDescriptor = req.getCore().getCoreDescriptor(); - CloudDescriptor cloudDescriptor = coreDescriptor.getCloudDescriptor(); - ZkController zkController = req.getCore().getCoreContainer().getZkController(); + CloudDescriptor cloudDescriptor = req.getCloudDescriptor(); + 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/handler/component/HttpShardHandlerFactory.java b/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java index d15d01e..cd65127 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java +++ b/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java @@ -340,9 +340,9 @@ public class HttpShardHandlerFactory extends ShardHandlerFactory implements org. protected ReplicaListTransformer getReplicaListTransformer(final SolrQueryRequest req) { final SolrParams params = req.getParams(); - final SolrCore core = req.getCore(); // explicit check for null core (temporary?, for tests) +// final SolrCore core = req.getCore(); // explicit check for null core (temporary?, for tests) @SuppressWarnings("resource") - ZkController zkController = core == null ? null : core.getCoreContainer().getZkController(); + ZkController zkController = req.getCoreContainer() == null ? null : req.getCoreContainer().getZkController(); if (zkController != null) { return requestReplicaListTransformerGenerator.getReplicaListTransformer( params, diff --git a/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java b/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java index 241b966..2dd565e 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java +++ b/solr/core/src/java/org/apache/solr/handler/component/QueryComponent.java @@ -288,7 +288,7 @@ public class QueryComponent extends SearchComponent groupingSpec.setResponseFormat(responseFormat); // See SOLR-12249. Disallow grouping on text fields that are not SortableText in cloud mode - if (req.getCore().getCoreContainer().isZooKeeperAware()) { + if (req.getCoreContainer().isZooKeeperAware()) { IndexSchema schema = rb.req.getSchema(); String[] fields = params.getParams(GroupParams.GROUP_FIELD); if (fields != null) { @@ -1569,7 +1569,7 @@ public class QueryComponent extends SearchComponent } private static String generateQueryID(SolrQueryRequest req) { - ZkController zkController = req.getCore().getCoreContainer().getZkController(); + ZkController zkController = req.getCoreContainer().getZkController(); String nodeName = req.getCore().getCoreContainer().getHostName(); if (zkController != null) { diff --git a/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java b/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java index d965cb7..3badb56 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java +++ b/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java @@ -119,7 +119,7 @@ public class RealTimeGetComponent extends SearchComponent SolrQueryRequest req = rb.req; SolrQueryResponse rsp = rb.rsp; SolrParams params = req.getParams(); - CloudDescriptor cloudDesc = req.getCore().getCoreDescriptor().getCloudDescriptor(); + CloudDescriptor cloudDesc = req.getCloudDescriptor(); if (cloudDesc != null) { Replica.Type replicaType = cloudDesc.getReplicaType(); @@ -975,11 +975,11 @@ public class RealTimeGetComponent extends SearchComponent // TODO: handle collection=...? - ZkController zkController = rb.req.getCore().getCoreContainer().getZkController(); + ZkController zkController = rb.req.getCoreContainer().getZkController(); // if shards=... then use that if (zkController != null && params.get(ShardParams.SHARDS) == null) { - CloudDescriptor cloudDescriptor = rb.req.getCore().getCoreDescriptor().getCloudDescriptor(); + CloudDescriptor cloudDescriptor = rb.req.getCloudDescriptor(); String collection = cloudDescriptor.getCollectionName(); ClusterState clusterState = zkController.getClusterState(); @@ -1207,7 +1207,7 @@ public class RealTimeGetComponent extends SearchComponent boolean onlyIfActive = rb.req.getParams().getBool("onlyIfActive", false); if (onlyIfActive) { - if (rb.req.getCore().getCoreDescriptor().getCloudDescriptor().getLastPublished() != Replica.State.ACTIVE) { + if (rb.req.getCloudDescriptor().getLastPublished() != Replica.State.ACTIVE) { log.info("Last published state was not ACTIVE, cannot sync."); rb.rsp.add("sync", "false"); return; diff --git a/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java b/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java index 0cd3db0..0073892 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java @@ -239,7 +239,7 @@ public class SearchHandler extends RequestHandlerBase implements SolrCoreAware, public ShardHandler getAndPrepShardHandler(SolrQueryRequest req, ResponseBuilder rb) { ShardHandler shardHandler = null; - CoreContainer cc = req.getCore().getCoreContainer(); + CoreContainer cc = req.getCoreContainer(); boolean isZkAware = cc.isZooKeeperAware(); rb.isDistrib = req.getParams().getBool(DISTRIB, isZkAware); if (!rb.isDistrib) { @@ -577,7 +577,7 @@ public class SearchHandler extends RequestHandlerBase implements SolrCoreAware, } private static String generateRid(SolrQueryRequest req) { - String hostName = req.getCore().getCoreContainer().getHostName(); + String hostName = req.getCoreContainer().getHostName(); return hostName + "-" + ridCounter.getAndIncrement(); } diff --git a/solr/core/src/java/org/apache/solr/handler/component/TaskManagementHandler.java b/solr/core/src/java/org/apache/solr/handler/component/TaskManagementHandler.java index f679007..7e3d08b 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/TaskManagementHandler.java +++ b/solr/core/src/java/org/apache/solr/handler/component/TaskManagementHandler.java @@ -132,7 +132,7 @@ public abstract class TaskManagementHandler extends RequestHandlerBase implement public static ResponseBuilder buildResponseBuilder(SolrQueryRequest req, SolrQueryResponse rsp, List<SearchComponent> components) { - CoreContainer cc = req.getCore().getCoreContainer(); + CoreContainer cc = req.getCoreContainer(); boolean isZkAware = cc.isZooKeeperAware(); ResponseBuilder rb = new ResponseBuilder(req, rsp, components); 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 d98cf79..ac2da0b 100644 --- a/solr/core/src/java/org/apache/solr/request/SimpleFacets.java +++ b/solr/core/src/java/org/apache/solr/request/SimpleFacets.java @@ -167,7 +167,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..446ca82 100644 --- a/solr/core/src/java/org/apache/solr/request/SolrQueryRequest.java +++ b/solr/core/src/java/org/apache/solr/request/SolrQueryRequest.java @@ -25,9 +25,12 @@ import io.opentracing.Span; import io.opentracing.Tracer; import io.opentracing.noop.NoopSpan; import io.opentracing.util.GlobalTracer; +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.CoreDescriptor; import org.apache.solr.core.SolrCore; import org.apache.solr.schema.IndexSchema; import org.apache.solr.search.SolrIndexSearcher; @@ -153,6 +156,21 @@ public interface SolrQueryRequest extends AutoCloseable { default Span getSpan() { return NoopSpan.INSTANCE; } + + default CoreContainer getCoreContainer() { + return getCore() == null ? null : getCore().getCoreContainer(); + } + + default void runAsync(Runnable r) { + getCore().runAsync(r); + } + + default CloudDescriptor getCloudDescriptor() { + SolrCore core = getCore(); + if (core == null) return null; + return core.getCoreDescriptor().getCloudDescriptor(); + } + } 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 54f05b0..93459ba 100644 --- a/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java +++ b/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java @@ -137,7 +137,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/search/join/ScoreJoinQParserPlugin.java b/solr/core/src/java/org/apache/solr/search/join/ScoreJoinQParserPlugin.java index c87e318..ed1603d 100644 --- a/solr/core/src/java/org/apache/solr/search/join/ScoreJoinQParserPlugin.java +++ b/solr/core/src/java/org/apache/solr/search/join/ScoreJoinQParserPlugin.java @@ -90,7 +90,7 @@ public class ScoreJoinQParserPlugin extends QParserPlugin { public Weight createWeight(IndexSearcher searcher, org.apache.lucene.search.ScoreMode scoreMode, float boost) throws IOException { SolrRequestInfo info = SolrRequestInfo.getRequestInfo(); - CoreContainer container = info.getReq().getCore().getCoreContainer(); + CoreContainer container = info.getReq().getCoreContainer(); final SolrCore fromCore = container.getCore(fromIndex); @@ -228,7 +228,7 @@ public class ScoreJoinQParserPlugin extends QParserPlugin { final String myCore = req.getCore().getCoreDescriptor().getName(); if (fromIndex != null && (!fromIndex.equals(myCore) || byPassShortCircutCheck)) { - CoreContainer container = req.getCore().getCoreContainer(); + CoreContainer container = req.getCoreContainer(); final String coreName = getCoreName(fromIndex, container); final SolrCore fromCore = container.getCore(coreName); diff --git a/solr/core/src/java/org/apache/solr/search/stats/ExactStatsCache.java b/solr/core/src/java/org/apache/solr/search/stats/ExactStatsCache.java index d11cc61..3dc7679 100644 --- a/solr/core/src/java/org/apache/solr/search/stats/ExactStatsCache.java +++ b/solr/core/src/java/org/apache/solr/search/stats/ExactStatsCache.java @@ -230,10 +230,10 @@ public class ExactStatsCache extends StatsCache { Map<String,TermStats> globalTermStats = new HashMap<>(); Map<String,CollectionStats> globalColStats = new HashMap<>(); // aggregate collection stats, only for the field in terms - String collectionName = rb.req.getCore().getCoreDescriptor().getCollectionName(); - if (collectionName == null) { + String collectionName = rb.req.getCloudDescriptor().getCollectionName(); + /* if (collectionName == null) { collectionName = rb.req.getCore().getCoreDescriptor().getName(); - } + }*/ List<String> shards = new ArrayList<>(); for (String shardUrl : rb.shards) { String shard = StatsUtil.shardUrlToShard(collectionName, shardUrl); 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..4b45087 100644 --- a/solr/core/src/java/org/apache/solr/update/AddUpdateCommand.java +++ b/solr/core/src/java/org/apache/solr/update/AddUpdateCommand.java @@ -88,9 +88,9 @@ public class AddUpdateCommand extends UpdateCommand { route = null; } else { // use route but there's one last exclusion: It's incompatible with SolrCloud implicit router. - String collectionName = req.getCore().getCoreDescriptor().getCollectionName(); + String collectionName = req.getCloudDescriptor().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/DistributedUpdateProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessorFactory.java index 93c1bf2..deaa1d9 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 @@ -50,7 +50,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..0df59e6 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 @@ -111,8 +111,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()); @@ -149,7 +149,7 @@ public class DistributedZkUpdateProcessor extends DistributedUpdateProcessor { @Override protected Replica.Type computeReplicaType() { // can't use cloudDesc since this is called by super class, before the constructor instantiates cloudDesc. - return req.getCore().getCoreDescriptor().getCloudDescriptor().getReplicaType(); + return req.getCloudDescriptor().getReplicaType(); } @Override @@ -757,7 +757,7 @@ public class DistributedZkUpdateProcessor extends DistributedUpdateProcessor { // a batch we need to use the _same_ leader replication tracker. if (isLeader && leaderReplicationTracker == null) { leaderReplicationTracker = new LeaderRequestReplicationTracker( - req.getCore().getCoreDescriptor().getCloudDescriptor().getShardId()); + req.getCloudDescriptor().getShardId()); } } @@ -1246,7 +1246,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..e359a2f 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 @@ -127,7 +127,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 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..eb99317 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 @@ -134,7 +134,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?"; }
