This is an automated email from the ASF dual-hosted git repository.

noble pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/branch_9x by this push:
     new 49bf4b0  SOLR-15963: Refactor code to minimize access to SolrCore 
(#599)
49bf4b0 is described below

commit 49bf4b00fa26506953bce347804ec1b31c881277
Author: Noble Paul <noblep...@users.noreply.github.com>
AuthorDate: Thu Feb 10 16:46:00 2022 +1100

    SOLR-15963: Refactor code to minimize access to SolrCore (#599)
---
 .../cloud/api/collections/CategoryRoutedAlias.java  |  4 ++--
 .../solr/cloud/api/collections/TimeRoutedAlias.java |  2 +-
 .../org/apache/solr/handler/RequestHandlerBase.java |  2 +-
 .../org/apache/solr/handler/SolrConfigHandler.java  |  6 +++---
 .../solr/handler/admin/ShowFileRequestHandler.java  |  4 ++--
 .../solr/handler/admin/SolrInfoMBeanHandler.java    |  2 +-
 .../solr/handler/admin/SystemInfoHandler.java       | 21 ++++++++-------------
 .../solr/handler/component/HttpShardHandler.java    |  4 ++--
 .../handler/component/HttpShardHandlerFactory.java  |  2 +-
 .../solr/handler/component/QueryComponent.java      |  6 +++---
 .../handler/component/RealTimeGetComponent.java     |  4 ++--
 .../solr/handler/component/SearchHandler.java       |  4 ++--
 .../handler/component/TaskManagementHandler.java    |  2 +-
 .../java/org/apache/solr/request/SimpleFacets.java  |  2 +-
 .../org/apache/solr/request/SolrQueryRequest.java   | 11 +++++++++++
 .../org/apache/solr/search/JoinQParserPlugin.java   |  2 +-
 .../solr/search/join/ScoreJoinQParserPlugin.java    |  4 ++--
 .../org/apache/solr/servlet/SolrRequestParsers.java |  9 +++++++++
 .../org/apache/solr/update/AddUpdateCommand.java    |  2 +-
 .../src/java/org/apache/solr/update/UpdateLog.java  |  2 +-
 .../processor/DistributedUpdateProcessor.java       |  2 +-
 .../DistributedUpdateProcessorFactory.java          |  2 +-
 .../processor/DistributedZkUpdateProcessor.java     |  4 ++--
 .../processor/RoutedAliasUpdateProcessor.java       |  2 +-
 .../update/processor/TolerantUpdateProcessor.java   |  2 +-
 .../solr/handler/component/AnalyticsComponent.java  |  2 +-
 .../LTRFeatureLoggerTransformerFactory.java         |  2 +-
 .../apache/solr/ltr/search/LTRQParserPlugin.java    |  2 +-
 28 files changed, 64 insertions(+), 49 deletions(-)

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/TimeRoutedAlias.java 
b/solr/core/src/java/org/apache/solr/cloud/api/collections/TimeRoutedAlias.java
index 3e6b31e..63f3ce4 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
@@ -449,7 +449,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 8156c19..eec7ef1 100644
--- a/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java
+++ b/solr/core/src/java/org/apache/solr/handler/RequestHandlerBase.java
@@ -223,7 +223,7 @@ public abstract class RequestHandlerBase implements
       }
     } 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/SolrConfigHandler.java 
b/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
index 02b56e1..50f220b 100644
--- a/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
@@ -472,7 +472,7 @@ public class SolrConfigHandler extends RequestHandlerBase 
implements SolrCoreAwa
 
           log.debug("persisted to version : {} ", latestVersion);
           
waitForAllReplicasState(req.getCore().getCoreDescriptor().getCloudDescriptor().getCollectionName(),
-              req.getCore().getCoreContainer().getZkController(), 
RequestParams.NAME, latestVersion, 30);
+              req.getCoreContainer().getZkController(), RequestParams.NAME, 
latestVersion, 30);
         }
 
       } else {
@@ -532,12 +532,12 @@ public class SolrConfigHandler extends RequestHandlerBase 
implements SolrCoreAwa
             ConfigOverlay.RESOURCE_NAME, overlay.toByteArray(), true);
         log.debug("Executed config commands successfully and persisted to ZK 
{}", ops);
         
waitForAllReplicasState(req.getCore().getCoreDescriptor().getCloudDescriptor().getCollectionName(),
-            req.getCore().getCoreContainer().getZkController(),
+            req.getCoreContainer().getZkController(),
             ConfigOverlay.NAME,
             latestVersion, 30);
       } else {
         SolrResourceLoader.persistConfLocally(loader, 
ConfigOverlay.RESOURCE_NAME, overlay.toByteArray());
-        req.getCore().getCoreContainer().reload(req.getCore().getName(), 
req.getCore().uniqueId);
+        req.getCoreContainer().reload(req.getCore().getName(), 
req.getCore().uniqueId);
         log.info("Executed config commands successfully and persisted to File 
System {}", ops);
       }
 
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 e944fb5..1332337 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
@@ -139,7 +139,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 {
@@ -379,7 +379,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.resolve(fname.startsWith("/") ? 
fname.substring(1) : fname);
-    req.getCore().getCoreContainer().assertPathAllowed(filePath);
+    req.getCoreContainer().assertPathAllowed(filePath);
     return filePath;
   }
 
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 80502c6..0b06616 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
@@ -132,7 +132,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 282b412..28bfe52 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
@@ -135,14 +135,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 +154,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 +169,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..99d1297 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
@@ -263,11 +263,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/handler/component/HttpShardHandlerFactory.java
 
b/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java
index d15d01e..41cb776 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
@@ -342,7 +342,7 @@ public class HttpShardHandlerFactory extends 
ShardHandlerFactory implements org.
     final SolrParams params = req.getParams();
     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().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..b7a40b7 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,8 +1569,8 @@ public class QueryComponent extends SearchComponent
   }
 
   private static String generateQueryID(SolrQueryRequest req) {
-    ZkController zkController = 
req.getCore().getCoreContainer().getZkController();
-    String nodeName = req.getCore().getCoreContainer().getHostName();
+    ZkController zkController = req.getCoreContainer().getZkController();
+    String nodeName = req.getCoreContainer().getHostName();
 
     if (zkController != null) {
       nodeName = zkController.getNodeName();
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 25bbbae..01fee72 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
@@ -172,7 +172,7 @@ public class RealTimeGetComponent extends SearchComponent
           try {
             if (log.isDebugEnabled()) {
               log.debug("{} min count to sync to (from most recent searcher 
view) {}"
-                  , 
req.getCore().getCoreContainer().getZkController().getNodeName()
+                  , req.getCoreContainer().getZkController().getNodeName()
                   , searcher.count(new MatchAllDocsQuery()));
             }
           } finally {
@@ -976,7 +976,7 @@ 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) {
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 3ee8575..f45588a 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
@@ -237,7 +237,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) {
@@ -586,7 +586,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 099000a..af0cac5 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..ec25bb8 100644
--- a/solr/core/src/java/org/apache/solr/request/SolrQueryRequest.java
+++ b/solr/core/src/java/org/apache/solr/request/SolrQueryRequest.java
@@ -21,6 +21,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.solr.cloud.CloudDescriptor;
 import io.opentracing.Span;
 import io.opentracing.Tracer;
 import io.opentracing.noop.NoopSpan;
@@ -28,6 +29,7 @@ import io.opentracing.util.GlobalTracer;
 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 +155,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/search/JoinQParserPlugin.java 
b/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java
index 7361b98..45ff096 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/servlet/SolrRequestParsers.java 
b/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
index 8685191..f19afed 100644
--- a/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
+++ b/solr/core/src/java/org/apache/solr/servlet/SolrRequestParsers.java
@@ -55,6 +55,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 +248,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..d2def0e 100644
--- a/solr/core/src/java/org/apache/solr/update/AddUpdateCommand.java
+++ b/solr/core/src/java/org/apache/solr/update/AddUpdateCommand.java
@@ -90,7 +90,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/UpdateLog.java 
b/solr/core/src/java/org/apache/solr/update/UpdateLog.java
index 87be666..8d0d8e0 100644
--- a/solr/core/src/java/org/apache/solr/update/UpdateLog.java
+++ b/solr/core/src/java/org/apache/solr/update/UpdateLog.java
@@ -1840,7 +1840,7 @@ public class UpdateLog implements PluginInfoInitialized, 
SolrMetricProducer {
 
         UpdateRequestProcessorChain processorChain = 
req.getCore().getUpdateProcessingChain(null);
         UpdateRequestProcessor proc = processorChain.createProcessor(req, rsp);
-        OrderedExecutor executor = inSortedOrder ? null : 
req.getCore().getCoreContainer().getReplayUpdatesExecutor();
+        OrderedExecutor executor = inSortedOrder ? null : 
req.getCoreContainer().getReplayUpdatesExecutor();
         AtomicInteger pendingTasks = new AtomicInteger(0);
         AtomicReference<SolrException> exceptionOnExecuteUpdate = new 
AtomicReference<>();
 
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..e3db4d9 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
@@ -631,7 +631,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..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..c022a43 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,7 +111,7 @@ public class DistributedZkUpdateProcessor extends 
DistributedUpdateProcessor {
   public DistributedZkUpdateProcessor(SolrQueryRequest req,
                                       SolrQueryResponse rsp, 
UpdateRequestProcessor next) {
     super(req, rsp, next);
-    CoreContainer cc = req.getCore().getCoreContainer();
+    CoreContainer cc = req.getCoreContainer();
     cloudDesc = req.getCore().getCoreDescriptor().getCloudDescriptor();
     zkController = cc.getZkController();
     distributedClusterStateUpdater = 
zkController.getDistributedClusterStateUpdater();
@@ -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?";
   }
diff --git 
a/solr/modules/analytics/src/java/org/apache/solr/handler/component/AnalyticsComponent.java
 
b/solr/modules/analytics/src/java/org/apache/solr/handler/component/AnalyticsComponent.java
index a743586..90ac4c5 100644
--- 
a/solr/modules/analytics/src/java/org/apache/solr/handler/component/AnalyticsComponent.java
+++ 
b/solr/modules/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/modules/ltr/src/java/org/apache/solr/ltr/response/transform/LTRFeatureLoggerTransformerFactory.java
 
b/solr/modules/ltr/src/java/org/apache/solr/ltr/response/transform/LTRFeatureLoggerTransformerFactory.java
index 310efb6..04f4980 100644
--- 
a/solr/modules/ltr/src/java/org/apache/solr/ltr/response/transform/LTRFeatureLoggerTransformerFactory.java
+++ 
b/solr/modules/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/modules/ltr/src/java/org/apache/solr/ltr/search/LTRQParserPlugin.java 
b/solr/modules/ltr/src/java/org/apache/solr/ltr/search/LTRQParserPlugin.java
index f29e7f3..592f94c 100644
--- a/solr/modules/ltr/src/java/org/apache/solr/ltr/search/LTRQParserPlugin.java
+++ b/solr/modules/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);

Reply via email to