You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by er...@apache.org on 2017/04/13 04:55:58 UTC
[1/2] lucene-solr:branch_6x: SOLR-10007 Clean up references to
CoreContainer and CoreDescriptors
Repository: lucene-solr
Updated Branches:
refs/heads/branch_6x 6b8d9fbba -> acf302202
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandlerFactory.java
----------------------------------------------------------------------
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 f0a28f0..36a1144 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
@@ -367,7 +367,7 @@ public class HttpShardHandlerFactory extends ShardHandlerFactory implements org.
if (params.getBool(CommonParams.PREFER_LOCAL_SHARDS, false)) {
final CoreDescriptor coreDescriptor = req.getCore().getCoreDescriptor();
- final ZkController zkController = coreDescriptor.getCoreContainer().getZkController();
+ final ZkController zkController = req.getCore().getCoreContainer().getZkController();
final String preferredHostAddress = (zkController != null) ? zkController.getBaseUrl() : null;
if (preferredHostAddress == null) {
log.warn("Couldn't determine current host address to prefer local shards");
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java b/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java
index c9e472f..469c8f5 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java
@@ -219,7 +219,7 @@ public class QueryElevationComponent extends SearchComponent implements SolrCore
boolean exists = false;
// check if using ZooKeeper
- ZkController zkController = core.getCoreDescriptor().getCoreContainer().getZkController();
+ ZkController zkController = core.getCoreContainer().getZkController();
if (zkController != null) {
// TODO : shouldn't have to keep reading the config name when it has been read before
exists = zkController.configFileExists(zkController.getZkStateReader().readConfigName(core.getCoreDescriptor().getCloudDescriptor().getCollectionName()), f);
@@ -274,7 +274,7 @@ public class QueryElevationComponent extends SearchComponent implements SolrCore
Config cfg;
- ZkController zkController = core.getCoreDescriptor().getCoreContainer().getZkController();
+ ZkController zkController = core.getCoreContainer().getZkController();
if (zkController != null) {
cfg = new Config(core.getResourceLoader(), f, null, null);
} else {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/component/RealTimeGetComponent.java
----------------------------------------------------------------------
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 9c8fc12..17dbca9 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
@@ -140,7 +140,7 @@ public class RealTimeGetComponent extends SearchComponent
.getNewestSearcher(false);
SolrIndexSearcher searcher = searchHolder.get();
try {
- log.debug(req.getCore().getCoreDescriptor()
+ log.debug(req.getCore()
.getCoreContainer().getZkController().getNodeName()
+ " min count to sync to (from most recent searcher view) "
+ searcher.search(new MatchAllDocsQuery(), 1).totalHits);
@@ -789,7 +789,7 @@ public class RealTimeGetComponent extends SearchComponent
// TODO: handle collection=...?
- ZkController zkController = rb.req.getCore().getCoreDescriptor().getCoreContainer().getZkController();
+ ZkController zkController = rb.req.getCore().getCoreContainer().getZkController();
// if shards=... then use that
if (zkController != null && params.get(ShardParams.SHARDS) == null) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/component/SearchHandler.java
----------------------------------------------------------------------
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 7ada2bd..9bc64c6 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
@@ -130,7 +130,7 @@ public class SearchHandler extends RequestHandlerBase implements SolrCoreAware ,
"First/Last components only valid if you do not declare 'components'");
if (shfInfo == null) {
- shardHandlerFactory = core.getCoreDescriptor().getCoreContainer().getShardHandlerFactory();
+ shardHandlerFactory = core.getCoreContainer().getShardHandlerFactory();
} else {
shardHandlerFactory = core.createInitInstance(shfInfo, ShardHandlerFactory.class, null, null);
core.addCloseHook(new CloseHook() {
@@ -212,7 +212,7 @@ public class SearchHandler extends RequestHandlerBase implements SolrCoreAware ,
private ShardHandler getAndPrepShardHandler(SolrQueryRequest req, ResponseBuilder rb) {
ShardHandler shardHandler = null;
- CoreContainer cc = req.getCore().getCoreDescriptor().getCoreContainer();
+ CoreContainer cc = req.getCore().getCoreContainer();
boolean isZkAware = cc.isZooKeeperAware();
rb.isDistrib = req.getParams().getBool(DISTRIB, isZkAware);
if (!rb.isDistrib) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/logging/MDCLoggingContext.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/logging/MDCLoggingContext.java b/solr/core/src/java/org/apache/solr/logging/MDCLoggingContext.java
index 5ff7742..11c8b84 100644
--- a/solr/core/src/java/org/apache/solr/logging/MDCLoggingContext.java
+++ b/solr/core/src/java/org/apache/solr/logging/MDCLoggingContext.java
@@ -34,7 +34,7 @@ import org.slf4j.MDC;
/**
* Set's per thread context info for logging. Nested calls will use the top level parent for all context. The first
* caller always owns the context until it calls {@link #clear()}. Always call {@link #setCore(SolrCore)} or
- * {@link #setCoreDescriptor(CoreDescriptor)} and then {@link #clear()} in a finally block.
+ * {@link #setCoreDescriptor(CoreContainer, CoreDescriptor)} and then {@link #clear()} in a finally block.
*/
public class MDCLoggingContext {
// When a thread sets context and finds that the context is already set, we should noop and ignore the finally clear
@@ -105,12 +105,11 @@ public class MDCLoggingContext {
public static void setCore(SolrCore core) {
if (core != null) {
- CoreDescriptor cd = core.getCoreDescriptor();
- setCoreDescriptor(cd);
+ setCoreDescriptor(core.getCoreContainer(), core.getCoreDescriptor());
}
}
- public static void setCoreDescriptor(CoreDescriptor cd) {
+ public static void setCoreDescriptor(CoreContainer coreContainer, CoreDescriptor cd) {
if (cd != null) {
int callDepth = CALL_DEPTH.get();
CALL_DEPTH.set(callDepth + 1);
@@ -119,9 +118,8 @@ public class MDCLoggingContext {
}
setCoreName(cd.getName());
- CoreContainer cc = cd.getCoreContainer();
- if (cc != null) {
- ZkController zkController = cc.getZkController();
+ if (coreContainer != null) {
+ ZkController zkController = coreContainer.getZkController();
if (zkController != null) {
setNodeName(zkController.getNodeName());
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/metrics/SolrCoreMetricManager.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/metrics/SolrCoreMetricManager.java b/solr/core/src/java/org/apache/solr/metrics/SolrCoreMetricManager.java
index eb5b687..dd4ddd9 100644
--- a/solr/core/src/java/org/apache/solr/metrics/SolrCoreMetricManager.java
+++ b/solr/core/src/java/org/apache/solr/metrics/SolrCoreMetricManager.java
@@ -46,7 +46,7 @@ public class SolrCoreMetricManager implements Closeable {
*/
public SolrCoreMetricManager(SolrCore core) {
this.core = core;
- this.metricManager = core.getCoreDescriptor().getCoreContainer().getMetricManager();
+ this.metricManager = core.getCoreContainer().getMetricManager();
registryName = createRegistryName(core.getCoreDescriptor().getCollectionName(), core.getName());
}
@@ -55,7 +55,7 @@ public class SolrCoreMetricManager implements Closeable {
* group or with a registry name specific to this core.
*/
public void loadReporters() {
- NodeConfig nodeConfig = core.getCoreDescriptor().getCoreContainer().getConfig();
+ NodeConfig nodeConfig = core.getCoreContainer().getConfig();
PluginInfo[] pluginInfos = nodeConfig.getMetricReporterPlugins();
metricManager.loadReporters(pluginInfos, core.getResourceLoader(), SolrInfoMBean.Group.core, registryName);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
----------------------------------------------------------------------
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 7092c09..1658e67 100644
--- a/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
+++ b/solr/core/src/java/org/apache/solr/schema/SchemaManager.java
@@ -127,7 +127,7 @@ public class SchemaManager {
latestVersion = ZkController.persistConfigResourceToZooKeeper
(zkLoader, managedIndexSchema.getSchemaZkVersion(), managedIndexSchema.getResourceName(),
sw.toString().getBytes(StandardCharsets.UTF_8), true);
- req.getCore().getCoreDescriptor().getCoreContainer().reload(req.getCore().getName());
+ req.getCore().getCoreContainer().reload(req.getCore().getName());
break;
} catch (ZkController.ResourceModifiedInZkException e) {
log.info("Schema was modified by another node. Retrying..");
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/schema/ZkIndexSchemaReader.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/schema/ZkIndexSchemaReader.java b/solr/core/src/java/org/apache/solr/schema/ZkIndexSchemaReader.java
index ee65fe8..e719404 100644
--- a/solr/core/src/java/org/apache/solr/schema/ZkIndexSchemaReader.java
+++ b/solr/core/src/java/org/apache/solr/schema/ZkIndexSchemaReader.java
@@ -55,7 +55,7 @@ public class ZkIndexSchemaReader implements OnReconnect {
solrCore.addCloseHook(new CloseHook() {
@Override
public void preClose(SolrCore core) {
- CoreContainer cc = core.getCoreDescriptor().getCoreContainer();
+ CoreContainer cc = core.getCoreContainer();
if (cc.isZooKeeperAware()) {
log.debug("Removing ZkIndexSchemaReader OnReconnect listener as core "+core.getName()+" is shutting down.");
ZkIndexSchemaReader.this.isRemoved = true;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java
----------------------------------------------------------------------
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 68b98b4..75701cd 100644
--- a/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java
+++ b/solr/core/src/java/org/apache/solr/search/JoinQParserPlugin.java
@@ -84,7 +84,7 @@ public class JoinQParserPlugin extends QParserPlugin {
long fromCoreOpenTime = 0;
if (fromIndex != null && !fromIndex.equals(req.getCore().getCoreDescriptor().getName()) ) {
- CoreContainer container = req.getCore().getCoreDescriptor().getCoreContainer();
+ CoreContainer container = req.getCore().getCoreContainer();
// if in SolrCloud mode, fromIndex should be the name of a single-sharded collection
coreName = ScoreJoinQParserPlugin.getCoreName(fromIndex, container);
@@ -173,7 +173,7 @@ class JoinQuery extends Query {
throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Cross-core join must have SolrRequestInfo");
}
- CoreContainer container = searcher.getCore().getCoreDescriptor().getCoreContainer();
+ CoreContainer container = searcher.getCore().getCoreContainer();
final SolrCore fromCore = container.getCore(fromIndex);
if (fromCore == null) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/search/join/ScoreJoinQParserPlugin.java
----------------------------------------------------------------------
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 6f3f8c9..0cb7e07 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
@@ -93,7 +93,7 @@ public class ScoreJoinQParserPlugin extends QParserPlugin {
public Query rewrite(IndexReader reader) throws IOException {
SolrRequestInfo info = SolrRequestInfo.getRequestInfo();
- CoreContainer container = info.getReq().getCore().getCoreDescriptor().getCoreContainer();
+ CoreContainer container = info.getReq().getCore().getCoreContainer();
final SolrCore fromCore = container.getCore(fromIndex);
@@ -250,7 +250,7 @@ public class ScoreJoinQParserPlugin extends QParserPlugin {
final String myCore = req.getCore().getCoreDescriptor().getName();
if (fromIndex != null && (!fromIndex.equals(myCore) || byPassShortCircutCheck)) {
- CoreContainer container = req.getCore().getCoreDescriptor().getCoreContainer();
+ CoreContainer container = req.getCore().getCoreContainer();
final String coreName = getCoreName(fromIndex, container);
final SolrCore fromCore = container.getCore(coreName);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java b/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java
index d0daebb..bc2afa8 100644
--- a/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java
+++ b/solr/core/src/java/org/apache/solr/update/DefaultSolrCoreState.java
@@ -281,7 +281,7 @@ public final class DefaultSolrCoreState extends SolrCoreState implements Recover
Thread thread = new Thread() {
@Override
public void run() {
- MDCLoggingContext.setCoreDescriptor(cd);
+ MDCLoggingContext.setCoreDescriptor(cc, cd);
try {
if (SKIP_AUTO_RECOVERY) {
log.warn("Skipping recovery according to sys prop solrcloud.skip.autorecovery");
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java b/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java
index a893260..c23d94c 100644
--- a/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java
+++ b/solr/core/src/java/org/apache/solr/update/DirectUpdateHandler2.java
@@ -731,7 +731,7 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
*/
@Override
public void rollback(RollbackUpdateCommand cmd) throws IOException {
- if (core.getCoreDescriptor().getCoreContainer().isZooKeeperAware()) {
+ if (core.getCoreContainer().isZooKeeperAware()) {
throw new UnsupportedOperationException("Rollback is currently not supported in SolrCloud mode. (SOLR-4895)");
}
@@ -787,7 +787,7 @@ public class DirectUpdateHandler2 extends UpdateHandler implements SolrCoreState
@Override
public void closeWriter(IndexWriter writer) throws IOException {
- assert TestInjection.injectNonGracefullClose(core.getCoreDescriptor().getCoreContainer());
+ assert TestInjection.injectNonGracefullClose(core.getCoreContainer());
boolean clearRequestInfo = false;
solrCoreState.getCommitLock().lock();
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/update/PeerSync.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/update/PeerSync.java b/solr/core/src/java/org/apache/solr/update/PeerSync.java
index f1aa09a..53c9076 100644
--- a/solr/core/src/java/org/apache/solr/update/PeerSync.java
+++ b/solr/core/src/java/org/apache/solr/update/PeerSync.java
@@ -151,13 +151,13 @@ public class PeerSync implements SolrMetricProducer {
this.cantReachIsSuccess = cantReachIsSuccess;
this.getNoVersionsIsSuccess = getNoVersionsIsSuccess;
this.doFingerprint = doFingerprint && !("true".equals(System.getProperty("solr.disableFingerprint")));
- this.client = core.getCoreDescriptor().getCoreContainer().getUpdateShardHandler().getHttpClient();
+ this.client = core.getCoreContainer().getUpdateShardHandler().getHttpClient();
this.onlyIfActive = onlyIfActive;
uhandler = core.getUpdateHandler();
ulog = uhandler.getUpdateLog();
// TODO: close
- shardHandlerFactory = (HttpShardHandlerFactory) core.getCoreDescriptor().getCoreContainer().getShardHandlerFactory();
+ shardHandlerFactory = (HttpShardHandlerFactory) core.getCoreContainer().getShardHandlerFactory();
shardHandler = shardHandlerFactory.getShardHandler(client);
core.getCoreMetricManager().registerMetricProducer(SolrInfoMBean.Category.REPLICATION.toString(), this);
@@ -182,7 +182,7 @@ public class PeerSync implements SolrMetricProducer {
// start of peersync related debug messages. includes the core name for correlation.
private String msg() {
- ZkController zkController = uhandler.core.getCoreDescriptor().getCoreContainer().getZkController();
+ ZkController zkController = uhandler.core.getCoreContainer().getZkController();
String myURL = "";
@@ -880,7 +880,7 @@ public class PeerSync implements SolrMetricProducer {
/** Requests and applies recent updates from peers */
public static void sync(SolrCore core, List<String> replicas, int nUpdates) {
- ShardHandlerFactory shardHandlerFactory = core.getCoreDescriptor().getCoreContainer().getShardHandlerFactory();
+ ShardHandlerFactory shardHandlerFactory = core.getCoreContainer().getShardHandlerFactory();
ShardHandler shardHandler = shardHandlerFactory.getShardHandler();
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java b/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java
index e4c0a62..452eb94 100644
--- a/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java
+++ b/solr/core/src/java/org/apache/solr/update/SolrIndexWriter.java
@@ -125,7 +125,7 @@ public class SolrIndexWriter extends IndexWriter {
infoStream = getConfig().getInfoStream();
this.directory = directory;
numOpens.incrementAndGet();
- SolrMetricManager metricManager = core.getCoreDescriptor().getCoreContainer().getMetricManager();
+ SolrMetricManager metricManager = core.getCoreContainer().getMetricManager();
String registry = core.getCoreMetricManager().getRegistryName();
if (config.metricsInfo != null && config.metricsInfo.initArgs != null) {
Object v = config.metricsInfo.initArgs.get("majorMergeDocs");
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/update/processor/DistributedUpdateProcessor.java
----------------------------------------------------------------------
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 0979d98..88890fe 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
@@ -73,7 +73,7 @@ import org.apache.solr.common.params.UpdateParams;
import org.apache.solr.common.util.Hash;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.Utils;
-import org.apache.solr.core.CoreDescriptor;
+import org.apache.solr.core.CoreContainer;
import org.apache.solr.handler.component.RealTimeGetComponent;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.response.SolrQueryResponse;
@@ -310,17 +310,16 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
// this should always be used - see filterParams
DistributedUpdateProcessorFactory.addParamToDistributedRequestWhitelist
(this.req, UpdateParams.UPDATE_CHAIN, TEST_DISTRIB_SKIP_SERVERS, CommonParams.VERSION_FIELD);
-
- CoreDescriptor coreDesc = req.getCore().getCoreDescriptor();
-
- this.zkEnabled = coreDesc.getCoreContainer().isZooKeeperAware();
- zkController = req.getCore().getCoreDescriptor().getCoreContainer().getZkController();
+
+ CoreContainer cc = req.getCore().getCoreContainer();
+
+ this.zkEnabled = cc.isZooKeeperAware();
+ zkController = cc.getZkController();
if (zkEnabled) {
- cmdDistrib = new SolrCmdDistributor(coreDesc.getCoreContainer().getUpdateShardHandler());
+ cmdDistrib = new SolrCmdDistributor(cc.getUpdateShardHandler());
}
//this.rsp = reqInfo != null ? reqInfo.getRsp() : null;
-
- cloudDesc = coreDesc.getCloudDescriptor();
+ cloudDesc = req.getCore().getCoreDescriptor().getCloudDescriptor();
if (cloudDesc != null) {
collection = cloudDesc.getCollectionName();
@@ -592,7 +591,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
ZkStateReader.COLLECTION_PROP, collection,
ZkStateReader.SHARD_ID_PROP, myShardId,
"routeKey", routeKey + "!");
- SolrZkClient zkClient = req.getCore().getCoreDescriptor().getCoreContainer().getZkController().getZkClient();
+ SolrZkClient zkClient = req.getCore().getCoreContainer().getZkController().getZkClient();
DistributedQueue queue = Overseer.getStateUpdateQueue(zkClient);
queue.offer(Utils.toJSON(map));
} catch (KeeperException e) {
@@ -936,7 +935,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
Throwable rootCause = SolrException.getRootCause(error.e);
log.error("Setting up to try to start recovery on replica {}", replicaUrl, rootCause);
zkController.ensureReplicaInLeaderInitiatedRecovery(
- req.getCore().getCoreDescriptor().getCoreContainer(),
+ req.getCore().getCoreContainer(),
collection,
shardId,
stdNode.getNodeProps(),
@@ -1287,7 +1286,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
*/
private UpdateCommand fetchFullUpdateFromLeader(AddUpdateCommand inplaceAdd, long versionOnUpdate) throws IOException {
String id = inplaceAdd.getPrintableId();
- UpdateShardHandler updateShardHandler = inplaceAdd.getReq().getCore().getCoreDescriptor().getCoreContainer().getUpdateShardHandler();
+ UpdateShardHandler updateShardHandler = inplaceAdd.getReq().getCore().getCoreContainer().getUpdateShardHandler();
ModifiableSolrParams params = new ModifiableSolrParams();
params.set(DISTRIB, false);
params.set("getInputDocument", id);
@@ -1723,7 +1722,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
// 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().getCoreDescriptor().getCoreContainer().isShutDown()) {
+ if (req.getCore().getCoreContainer().isShutDown()) {
throw new SolrException(ErrorCode.SERVICE_UNAVAILABLE, "CoreContainer is shutting down.");
}
@@ -1917,7 +1916,7 @@ public class DistributedUpdateProcessor extends UpdateRequestProcessor {
private List<Node> getCollectionUrls(SolrQueryRequest req, String collection) {
- ClusterState clusterState = req.getCore().getCoreDescriptor()
+ ClusterState clusterState = req.getCore()
.getCoreContainer().getZkController().getClusterState();
Map<String,Slice> slices = clusterState.getSlicesMap(collection);
if (slices == null) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/update/processor/DocExpirationUpdateProcessorFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/update/processor/DocExpirationUpdateProcessorFactory.java b/solr/core/src/java/org/apache/solr/update/processor/DocExpirationUpdateProcessorFactory.java
index 332dba6..c4234cb 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/DocExpirationUpdateProcessorFactory.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/DocExpirationUpdateProcessorFactory.java
@@ -454,7 +454,7 @@ public final class DocExpirationUpdateProcessorFactory
* </p>
*/
private boolean iAmInChargeOfPeriodicDeletes() {
- ZkController zk = core.getCoreDescriptor().getCoreContainer().getZkController();
+ ZkController zk = core.getCoreContainer().getZkController();
if (null == zk) return true;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/update/processor/TolerantUpdateProcessor.java
----------------------------------------------------------------------
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 9c1a565..2f4de12 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().getCoreDescriptor().getCoreContainer().getZkController();
+ this.zkController = this.req.getCore().getCoreContainer().getZkController();
this.uniqueKeyField = this.req.getCore().getLatestSchema().getUniqueKeyField();
assert null != uniqueKeyField : "Factory didn't enforce uniqueKey field?";
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/util/SolrLogLayout.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/util/SolrLogLayout.java b/solr/core/src/java/org/apache/solr/util/SolrLogLayout.java
index b79ec0c..a60ada8 100644
--- a/solr/core/src/java/org/apache/solr/util/SolrLogLayout.java
+++ b/solr/core/src/java/org/apache/solr/util/SolrLogLayout.java
@@ -164,7 +164,7 @@ public class SolrLogLayout extends Layout {
sb.append(" " + core);
}
- zkController = core.getCoreDescriptor().getCoreContainer().getZkController();
+ zkController = core.getCoreContainer().getZkController();
if (zkController != null) {
if (info.url == null) {
info.url = zkController.getBaseUrl() + "/" + core.getName();
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/test/org/apache/solr/core/TestCodecSupport.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/core/TestCodecSupport.java b/solr/core/src/test/org/apache/solr/core/TestCodecSupport.java
index 7d2f174..bdef535 100644
--- a/solr/core/src/test/org/apache/solr/core/TestCodecSupport.java
+++ b/solr/core/src/test/org/apache/solr/core/TestCodecSupport.java
@@ -215,11 +215,15 @@ public class TestCodecSupport extends SolrTestCaseJ4 {
assertNull("Unexpected configuration of codec factory for this test. Expecting empty element",
config.getNode("codecFactory", false).getFirstChild());
IndexSchema schema = IndexSchemaFactory.buildIndexSchema("schema_codec.xml", config);
+
+ CoreContainer coreContainer = h.getCoreContainer();
try {
- c = new SolrCore(new CoreDescriptor(h.getCoreContainer(), newCoreName, testSolrHome.resolve(newCoreName)),
+ CoreDescriptor cd = new CoreDescriptor(newCoreName, testSolrHome.resolve(newCoreName),
+ coreContainer.getContainerProperties(), coreContainer.isZooKeeperAware());
+ c = new SolrCore(coreContainer, cd,
new ConfigSet("fakeConfigset", config, schema, null, true));
- assertNull(h.getCoreContainer().registerCore(newCoreName, c, false, false));
+ assertNull(coreContainer.registerCore(cd, c, false, false));
h.coreName = newCoreName;
assertEquals("We are not using the correct core", "solrconfig_codec2.xml", h.getCore().getConfigResource());
assertU(add(doc("string_f", "foo")));
@@ -227,7 +231,7 @@ public class TestCodecSupport extends SolrTestCaseJ4 {
assertCompressionMode(SchemaCodecFactory.SOLR_DEFAULT_COMPRESSION_MODE.name(), h.getCore());
} finally {
h.coreName = previousCoreName;
- h.getCoreContainer().unload(newCoreName);
+ coreContainer.unload(newCoreName);
}
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java b/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
index d23b8b1..91bbabb 100644
--- a/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
+++ b/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
@@ -214,7 +214,9 @@ public class TestCoreContainer extends SolrTestCaseJ4 {
final CoreContainer cc = new CoreContainer(SolrXmlConfig.fromString(resourceLoader, CONFIGSETS_SOLR_XML), new Properties(), cl);
Path corePath = resourceLoader.getInstancePath().resolve("badcore");
- CoreDescriptor badcore = new CoreDescriptor(cc, "badcore", corePath, "configSet", "nosuchconfigset");
+ CoreDescriptor badcore = new CoreDescriptor("badcore", corePath, cc.getContainerProperties(), cc.isZooKeeperAware(),
+ "configSet", "nosuchconfigset");
+
cl.add(badcore);
try {
@@ -383,6 +385,12 @@ public class TestCoreContainer extends SolrTestCaseJ4 {
public List<CoreDescriptor> discover(CoreContainer cc) {
return cores;
}
+
+ @Override
+ public CoreDescriptor reload(CoreContainer cc, CoreDescriptor cd) {
+ return cd;
+ }
+
}
@Test
@@ -397,7 +405,7 @@ public class TestCoreContainer extends SolrTestCaseJ4 {
CoreContainer cc = init(CONFIGSETS_SOLR_XML);
// check that we have the cores we expect
- cores = cc.getCoreNames();
+ cores = cc.getLoadedCoreNames();
assertNotNull("core names is null", cores);
assertEquals("wrong number of cores", 0, cores.size());
@@ -420,7 +428,7 @@ public class TestCoreContainer extends SolrTestCaseJ4 {
}
// check that we have the cores we expect
- cores = cc.getCoreNames();
+ cores = cc.getLoadedCoreNames();
assertNotNull("core names is null", cores);
assertEquals("wrong number of cores", 0, cores.size());
@@ -467,12 +475,14 @@ public class TestCoreContainer extends SolrTestCaseJ4 {
System.setProperty("configsets", getFile("solr/configsets").getAbsolutePath());
final CoreContainer cc = new CoreContainer(SolrXmlConfig.fromString(resourceLoader, CONFIGSETS_SOLR_XML), new Properties(), cl);
- cl.add(new CoreDescriptor(cc, "col_ok", resourceLoader.getInstancePath().resolve("col_ok"), "configSet", "minimal"));
- cl.add(new CoreDescriptor(cc, "col_bad", resourceLoader.getInstancePath().resolve("col_bad"), "configSet", "bad-mergepolicy"));
+ cl.add(new CoreDescriptor("col_ok", resourceLoader.getInstancePath().resolve("col_ok"),
+ cc.getContainerProperties(), cc.isZooKeeperAware(), "configSet", "minimal"));
+ cl.add(new CoreDescriptor("col_bad", resourceLoader.getInstancePath().resolve("col_bad"),
+ cc.getContainerProperties(), cc.isZooKeeperAware(), "configSet", "bad-mergepolicy"));
cc.load();
// check that we have the cores we expect
- cores = cc.getCoreNames();
+ cores = cc.getLoadedCoreNames();
assertNotNull("core names is null", cores);
assertEquals("wrong number of cores", 1, cores.size());
assertTrue("col_ok not found", cores.contains("col_ok"));
@@ -509,7 +519,7 @@ public class TestCoreContainer extends SolrTestCaseJ4 {
cc.create("col_bad", ImmutableMap.of());
// check that we have the cores we expect
- cores = cc.getCoreNames();
+ cores = cc.getLoadedCoreNames();
assertNotNull("core names is null", cores);
assertEquals("wrong number of cores", 2, cores.size());
assertTrue("col_ok not found", cores.contains("col_ok"));
@@ -534,7 +544,7 @@ public class TestCoreContainer extends SolrTestCaseJ4 {
}
// check that we have the cores we expect
- cores = cc.getCoreNames();
+ cores = cc.getLoadedCoreNames();
assertNotNull("core names is null", cores);
assertEquals("wrong number of cores", 2, cores.size());
assertTrue("col_ok not found", cores.contains("col_ok"));
@@ -591,7 +601,7 @@ public class TestCoreContainer extends SolrTestCaseJ4 {
col_bad_old_start, getCoreStartTime(cc, "col_bad"));
// check that we have the cores we expect
- cores = cc.getCoreNames();
+ cores = cc.getLoadedCoreNames();
assertNotNull("core names is null", cores);
assertEquals("wrong number of cores", 2, cores.size());
assertTrue("col_ok not found", cores.contains("col_ok"));
@@ -619,7 +629,7 @@ public class TestCoreContainer extends SolrTestCaseJ4 {
// check that we have the cores we expect
- cores = cc.getCoreNames();
+ cores = cc.getLoadedCoreNames();
assertNotNull("core names is null", cores);
assertEquals("wrong number of cores", 2, cores.size());
assertTrue("col_ok not found", cores.contains("col_ok"));
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java b/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java
index 22020ba..0c05d83 100644
--- a/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java
+++ b/solr/core/src/test/org/apache/solr/core/TestCoreDiscovery.java
@@ -200,7 +200,7 @@ public class TestCoreDiscovery extends SolrTestCaseJ4 {
cc.load();
// Just check that the proper number of cores are loaded since making the test depend on order would be fragile
assertEquals("There should only be 3 cores loaded, coreLOS and two coreT? cores",
- 3, cc.getCoreNames().size());
+ 3, cc.getLoadedCoreNames().size());
SolrCore c1 = cc.getCore("coreT1");
assertNotNull("Core T1 should NOT BE NULL", c1);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/test/org/apache/solr/core/TestLazyCores.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/core/TestLazyCores.java b/solr/core/src/test/org/apache/solr/core/TestLazyCores.java
index 8690e27..7c41470 100644
--- a/solr/core/src/test/org/apache/solr/core/TestLazyCores.java
+++ b/solr/core/src/test/org/apache/solr/core/TestLazyCores.java
@@ -58,7 +58,7 @@ public class TestLazyCores extends SolrTestCaseJ4 {
}
private static CoreDescriptor makeCoreDescriptor(CoreContainer cc, String coreName, String isTransient, String loadOnStartup) {
- return new CoreDescriptor(cc, coreName, cc.getCoreRootDirectory().resolve(coreName),
+ return new CoreDescriptor(coreName, cc.getCoreRootDirectory().resolve(coreName), cc.getContainerProperties(), false,
CoreDescriptor.CORE_TRANSIENT, isTransient,
CoreDescriptor.CORE_LOADONSTARTUP, loadOnStartup);
}
@@ -372,8 +372,7 @@ public class TestLazyCores extends SolrTestCaseJ4 {
resp);
}
-
-
+
// Make sure that creating a transient core from the admin handler correctly respects the transient limits etc.
@Test
public void testCreateTransientFromAdmin() throws Exception {
@@ -496,7 +495,13 @@ public class TestLazyCores extends SolrTestCaseJ4 {
copyGoodConf("badSchema2", "schema-tiny.xml", "schema.xml");
- // This should force a reload of the cores.
+ // Reload the cores and insure that
+ // 1> they pick up the new configs
+ // 2> they don't fail again b/c they still have entries in loadFailure in core container.
+ cc.reload("badConfig1");
+ cc.reload("badConfig2");
+ cc.reload("badSchema1");
+ cc.reload("badSchema2");
SolrCore bc1 = cc.getCore("badConfig1");;
SolrCore bc2 = cc.getCore("badConfig2");
SolrCore bs1 = cc.getCore("badSchema1");
@@ -640,7 +645,7 @@ public class TestLazyCores extends SolrTestCaseJ4 {
}
public static void checkNotInCores(CoreContainer cc, String... nameCheck) {
- Collection<String> loadedNames = cc.getCoreNames();
+ Collection<String> loadedNames = cc.getLoadedCoreNames();
for (String name : nameCheck) {
assertFalse("core " + name + " was found in the list of cores", loadedNames.contains(name));
}
@@ -673,7 +678,7 @@ public class TestLazyCores extends SolrTestCaseJ4 {
}
public static void checkInCores(CoreContainer cc, String... nameCheck) {
- Collection<String> loadedNames = cc.getCoreNames();
+ Collection<String> loadedNames = cc.getLoadedCoreNames();
assertEquals("There whould be exactly as many loaded cores as loaded names returned. ",
loadedNames.size(), nameCheck.length);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/test/org/apache/solr/metrics/SolrCoreMetricManagerTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/metrics/SolrCoreMetricManagerTest.java b/solr/core/src/test/org/apache/solr/metrics/SolrCoreMetricManagerTest.java
index 1df6021..ff61f55 100644
--- a/solr/core/src/test/org/apache/solr/metrics/SolrCoreMetricManagerTest.java
+++ b/solr/core/src/test/org/apache/solr/metrics/SolrCoreMetricManagerTest.java
@@ -46,7 +46,7 @@ public class SolrCoreMetricManagerTest extends SolrTestCaseJ4 {
public void beforeTest() throws Exception {
initCore("solrconfig-basic.xml", "schema.xml");
coreMetricManager = h.getCore().getCoreMetricManager();
- metricManager = h.getCore().getCoreDescriptor().getCoreContainer().getMetricManager();
+ metricManager = h.getCore().getCoreContainer().getMetricManager();
}
@After
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterTest.java b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterTest.java
index ea452b2..333876f 100644
--- a/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterTest.java
+++ b/solr/core/src/test/org/apache/solr/metrics/reporters/SolrJmxReporterTest.java
@@ -62,7 +62,7 @@ public class SolrJmxReporterTest extends SolrTestCaseJ4 {
domain = core.getName();
coreMetricManager = core.getCoreMetricManager();
- metricManager = core.getCoreDescriptor().getCoreContainer().getMetricManager();
+ metricManager = core.getCoreContainer().getMetricManager();
PluginInfo pluginInfo = createReporterPluginInfo();
metricManager.loadReporter(coreMetricManager.getRegistryName(), coreMetricManager.getCore().getResourceLoader(), pluginInfo);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/test/org/apache/solr/update/VersionInfoTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/update/VersionInfoTest.java b/solr/core/src/test/org/apache/solr/update/VersionInfoTest.java
index 6bccd95..e8a85bd 100644
--- a/solr/core/src/test/org/apache/solr/update/VersionInfoTest.java
+++ b/solr/core/src/test/org/apache/solr/update/VersionInfoTest.java
@@ -101,7 +101,7 @@ public class VersionInfoTest extends SolrTestCaseJ4 {
versionFromTLog, versionFromIndex);
// reload the core, which should reset the max
- CoreContainer coreContainer = req.getCore().getCoreDescriptor().getCoreContainer();
+ CoreContainer coreContainer = req.getCore().getCoreContainer();
coreContainer.reload(req.getCore().getName());
maxVersionFromIndex = ulog.getMaxVersionFromIndex();
assertEquals("max version from index should be equal to version of last doc added after reload",
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/test/org/apache/solr/util/MockCoreContainer.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/util/MockCoreContainer.java b/solr/core/src/test/org/apache/solr/util/MockCoreContainer.java
index 054415a..5e8eab0 100644
--- a/solr/core/src/test/org/apache/solr/util/MockCoreContainer.java
+++ b/solr/core/src/test/org/apache/solr/util/MockCoreContainer.java
@@ -26,7 +26,7 @@ import org.apache.solr.core.CoreDescriptor;
public class MockCoreContainer extends CoreContainer {
public static class MockCoreDescriptor extends CoreDescriptor {
public MockCoreDescriptor() {
- super(new MockCoreContainer(), "mock", Paths.get("path"));
+ super("mock", Paths.get("path"), null, false);
}
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/solrj/src/test/org/apache/solr/client/solrj/MergeIndexesExampleTestBase.java
----------------------------------------------------------------------
diff --git a/solr/solrj/src/test/org/apache/solr/client/solrj/MergeIndexesExampleTestBase.java b/solr/solrj/src/test/org/apache/solr/client/solrj/MergeIndexesExampleTestBase.java
index 1f16415..2c8ebe9 100644
--- a/solr/solrj/src/test/org/apache/solr/client/solrj/MergeIndexesExampleTestBase.java
+++ b/solr/solrj/src/test/org/apache/solr/client/solrj/MergeIndexesExampleTestBase.java
@@ -79,7 +79,7 @@ public abstract class MergeIndexesExampleTestBase extends SolrExampleTestBase {
System.setProperty( "solr.core1.data.dir", this.dataDir2.getCanonicalPath() );
setupCoreContainer();
- log.info("CORES=" + cores + " : " + cores.getCoreNames());
+ log.info("CORES=" + cores + " : " + cores.getLoadedCoreNames());
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/test-framework/src/java/org/apache/solr/util/ReadOnlyCoresLocator.java
----------------------------------------------------------------------
diff --git a/solr/test-framework/src/java/org/apache/solr/util/ReadOnlyCoresLocator.java b/solr/test-framework/src/java/org/apache/solr/util/ReadOnlyCoresLocator.java
index 3d11ff7..3ad3ce2 100644
--- a/solr/test-framework/src/java/org/apache/solr/util/ReadOnlyCoresLocator.java
+++ b/solr/test-framework/src/java/org/apache/solr/util/ReadOnlyCoresLocator.java
@@ -47,4 +47,10 @@ public abstract class ReadOnlyCoresLocator implements CoresLocator {
// no-op
}
+ @Override
+ public CoreDescriptor reload(CoreContainer cc, CoreDescriptor cd) {
+ return null; // no-op
+ }
+
+
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java
----------------------------------------------------------------------
diff --git a/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java b/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java
index 80760c6..ec4386a 100644
--- a/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java
+++ b/solr/test-framework/src/java/org/apache/solr/util/TestHarness.java
@@ -222,13 +222,19 @@ public class TestHarness extends BaseTestHarness {
@Override
public List<CoreDescriptor> discover(CoreContainer cc) {
- return ImmutableList.of(new CoreDescriptor(cc, coreName, cc.getCoreRootDirectory().resolve(coreName),
+ return ImmutableList.of(new CoreDescriptor(coreName, cc.getCoreRootDirectory().resolve(coreName),
+ cc.getContainerProperties(), cc.isZooKeeperAware(),
CoreDescriptor.CORE_DATADIR, dataDir,
CoreDescriptor.CORE_CONFIG, solrConfig,
CoreDescriptor.CORE_SCHEMA, schema,
CoreDescriptor.CORE_COLLECTION, System.getProperty("collection", "collection1"),
CoreDescriptor.CORE_SHARD, System.getProperty("shard", "shard1")));
}
+
+ @Override
+ public CoreDescriptor reload(CoreContainer cc, CoreDescriptor cd) {
+ return cd;
+ }
}
public CoreContainer getCoreContainer() {
[2/2] lucene-solr:branch_6x: SOLR-10007 Clean up references to
CoreContainer and CoreDescriptors
Posted by er...@apache.org.
SOLR-10007 Clean up references to CoreContainer and CoreDescriptors
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/acf30220
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/acf30220
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/acf30220
Branch: refs/heads/branch_6x
Commit: acf302202a15426eee148f58346689ff42dd23e4
Parents: 6b8d9fb
Author: Erick Erickson <er...@apache.org>
Authored: Wed Apr 12 21:55:52 2017 -0700
Committer: Erick Erickson <er...@apache.org>
Committed: Wed Apr 12 21:55:52 2017 -0700
----------------------------------------------------------------------
solr/CHANGES.txt | 2 +
.../solr/handler/dataimport/DataImporter.java | 3 +-
.../solr/handler/dataimport/DocBuilder.java | 2 +-
.../handler/dataimport/ZKPropertiesWriter.java | 2 +-
.../solrj/embedded/EmbeddedSolrServer.java | 2 +-
.../java/org/apache/solr/cloud/CloudUtil.java | 2 +-
.../org/apache/solr/cloud/ElectionContext.java | 8 +-
.../org/apache/solr/cloud/RecoveryStrategy.java | 4 +-
.../org/apache/solr/cloud/ZkController.java | 2 +-
.../apache/solr/cloud/rule/ImplicitSnitch.java | 2 +-
.../org/apache/solr/core/CoreContainer.java | 111 +++++++++----------
.../org/apache/solr/core/CoreDescriptor.java | 40 ++++---
.../apache/solr/core/CorePropertiesLocator.java | 10 +-
.../java/org/apache/solr/core/CoresLocator.java | 9 ++
.../apache/solr/core/HdfsDirectoryFactory.java | 2 +-
.../java/org/apache/solr/core/PluginBag.java | 2 +-
.../src/java/org/apache/solr/core/SolrCore.java | 68 ++++++------
.../java/org/apache/solr/core/SolrCores.java | 70 +++++++-----
.../java/org/apache/solr/core/ZkContainer.java | 2 +-
.../solr/handler/CdcrBufferStateManager.java | 8 +-
.../solr/handler/CdcrLeaderStateManager.java | 10 +-
.../solr/handler/CdcrProcessStateManager.java | 8 +-
.../solr/handler/CdcrReplicatorManager.java | 2 +-
.../apache/solr/handler/CdcrRequestHandler.java | 8 +-
.../solr/handler/CdcrUpdateLogSynchronizer.java | 2 +-
.../org/apache/solr/handler/GraphHandler.java | 4 +-
.../org/apache/solr/handler/IndexFetcher.java | 10 +-
.../apache/solr/handler/ReplicationHandler.java | 8 +-
.../org/apache/solr/handler/SQLHandler.java | 4 +-
.../apache/solr/handler/SolrConfigHandler.java | 6 +-
.../org/apache/solr/handler/StreamHandler.java | 4 +-
.../solr/handler/admin/LoggingHandler.java | 2 +-
.../solr/handler/admin/PrepRecoveryOp.java | 2 +-
.../solr/handler/admin/RequestSyncShardOp.java | 4 +-
.../handler/admin/ShowFileRequestHandler.java | 2 +-
.../handler/admin/SolrInfoMBeanHandler.java | 2 +-
.../solr/handler/admin/SystemInfoHandler.java | 2 +-
.../solr/handler/component/DebugComponent.java | 2 +-
.../handler/component/HttpShardHandler.java | 2 +-
.../component/HttpShardHandlerFactory.java | 2 +-
.../component/QueryElevationComponent.java | 4 +-
.../handler/component/RealTimeGetComponent.java | 4 +-
.../solr/handler/component/SearchHandler.java | 4 +-
.../apache/solr/logging/MDCLoggingContext.java | 12 +-
.../solr/metrics/SolrCoreMetricManager.java | 4 +-
.../org/apache/solr/schema/SchemaManager.java | 2 +-
.../apache/solr/schema/ZkIndexSchemaReader.java | 2 +-
.../apache/solr/search/JoinQParserPlugin.java | 4 +-
.../search/join/ScoreJoinQParserPlugin.java | 4 +-
.../solr/update/DefaultSolrCoreState.java | 2 +-
.../solr/update/DirectUpdateHandler2.java | 4 +-
.../java/org/apache/solr/update/PeerSync.java | 8 +-
.../org/apache/solr/update/SolrIndexWriter.java | 2 +-
.../processor/DistributedUpdateProcessor.java | 27 +++--
.../DocExpirationUpdateProcessorFactory.java | 2 +-
.../processor/TolerantUpdateProcessor.java | 2 +-
.../org/apache/solr/util/SolrLogLayout.java | 2 +-
.../org/apache/solr/core/TestCodecSupport.java | 10 +-
.../org/apache/solr/core/TestCoreContainer.java | 30 +++--
.../org/apache/solr/core/TestCoreDiscovery.java | 2 +-
.../org/apache/solr/core/TestLazyCores.java | 17 ++-
.../solr/metrics/SolrCoreMetricManagerTest.java | 2 +-
.../metrics/reporters/SolrJmxReporterTest.java | 2 +-
.../org/apache/solr/update/VersionInfoTest.java | 2 +-
.../org/apache/solr/util/MockCoreContainer.java | 2 +-
.../solrj/MergeIndexesExampleTestBase.java | 2 +-
.../apache/solr/util/ReadOnlyCoresLocator.java | 6 +
.../java/org/apache/solr/util/TestHarness.java | 8 +-
68 files changed, 335 insertions(+), 274 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 9a5b682..2baecad 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -139,6 +139,8 @@ Other Changes
* SOLR-10429: UpdateRequest#getRoutes()should copy the response parser (noble)
+* SOLR-10007: Clean up references to CoreContainer and CoreDescriptors (Erick Erickson)
+
================== 6.5.1 ==================
Bug Fixes
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImporter.java
----------------------------------------------------------------------
diff --git a/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImporter.java b/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImporter.java
index 2f5e9b0..a49b4f6 100644
--- a/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImporter.java
+++ b/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DataImporter.java
@@ -288,8 +288,7 @@ public class DataImporter {
if (propertyWriterTags.isEmpty()) {
boolean zookeeper = false;
if (this.core != null
- && this.core.getCoreDescriptor().getCoreContainer()
- .isZooKeeperAware()) {
+ && this.core.getCoreContainer().isZooKeeperAware()) {
zookeeper = true;
}
pw = new PropertyWriter(zookeeper ? "ZKPropertiesWriter"
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DocBuilder.java
----------------------------------------------------------------------
diff --git a/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DocBuilder.java b/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DocBuilder.java
index c80d275..91fd7a4 100644
--- a/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DocBuilder.java
+++ b/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/DocBuilder.java
@@ -313,7 +313,7 @@ public class DocBuilder {
}
void handleError(String message, Exception e) {
- if (!dataImporter.getCore().getCoreDescriptor().getCoreContainer().isZooKeeperAware()) {
+ if (!dataImporter.getCore().getCoreContainer().isZooKeeperAware()) {
writer.rollback();
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/ZKPropertiesWriter.java
----------------------------------------------------------------------
diff --git a/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/ZKPropertiesWriter.java b/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/ZKPropertiesWriter.java
index 2d54872..64a776c 100644
--- a/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/ZKPropertiesWriter.java
+++ b/solr/contrib/dataimporthandler/src/java/org/apache/solr/handler/dataimport/ZKPropertiesWriter.java
@@ -44,7 +44,7 @@ public class ZKPropertiesWriter extends SimplePropertiesWriter {
@Override
public void init(DataImporter dataImporter, Map<String, String> params) {
super.init(dataImporter, params);
- zkClient = dataImporter.getCore().getCoreDescriptor().getCoreContainer().getZkController().getZkClient();
+ zkClient = dataImporter.getCore().getCoreContainer().getZkController().getZkClient();
}
@Override
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java b/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java
index 8de5fc9..948452e 100644
--- a/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java
+++ b/solr/core/src/java/org/apache/solr/client/solrj/embedded/EmbeddedSolrServer.java
@@ -89,7 +89,7 @@ public class EmbeddedSolrServer extends SolrClient {
* Create an EmbeddedSolrServer wrapping a particular SolrCore
*/
public EmbeddedSolrServer(SolrCore core) {
- this(core.getCoreDescriptor().getCoreContainer(), core.getName());
+ this(core.getCoreContainer(), core.getName());
}
/**
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/cloud/CloudUtil.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/cloud/CloudUtil.java b/solr/core/src/java/org/apache/solr/cloud/CloudUtil.java
index c62efa6..ac09621 100644
--- a/solr/core/src/java/org/apache/solr/cloud/CloudUtil.java
+++ b/solr/core/src/java/org/apache/solr/cloud/CloudUtil.java
@@ -68,7 +68,7 @@ public class CloudUtil {
if (thisCnn != null && thisCnn.equals(cnn)
&& !thisBaseUrl.equals(baseUrl)) {
- if (cc.getCoreNames().contains(desc.getName())) {
+ if (cc.getLoadedCoreNames().contains(desc.getName())) {
cc.unload(desc.getName());
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java b/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java
index c45699b..b2ca7cf 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ElectionContext.java
@@ -291,7 +291,7 @@ final class ShardLeaderElectionContext extends ShardLeaderElectionContextBase {
if (cc.isShutDown()) {
return;
} else {
- throw new SolrException(ErrorCode.SERVER_ERROR, "SolrCore not found:" + coreName + " in " + cc.getCoreNames());
+ throw new SolrException(ErrorCode.SERVER_ERROR, "SolrCore not found:" + coreName + " in " + cc.getLoadedCoreNames());
}
}
MDCLoggingContext.setCore(core);
@@ -331,7 +331,7 @@ final class ShardLeaderElectionContext extends ShardLeaderElectionContextBase {
if (!zkController.getCoreContainer().isShutDown()) {
cancelElection();
throw new SolrException(ErrorCode.SERVER_ERROR,
- "SolrCore not found:" + coreName + " in " + cc.getCoreNames());
+ "SolrCore not found:" + coreName + " in " + cc.getLoadedCoreNames());
} else {
return;
}
@@ -401,7 +401,7 @@ final class ShardLeaderElectionContext extends ShardLeaderElectionContextBase {
RefCounted<SolrIndexSearcher> searchHolder = core.getNewestSearcher(false);
SolrIndexSearcher searcher = searchHolder.get();
try {
- log.debug(core.getCoreDescriptor().getCoreContainer().getZkController().getNodeName() + " synched "
+ log.debug(core.getCoreContainer().getZkController().getNodeName() + " synched "
+ searcher.search(new MatchAllDocsQuery(), 1).totalHits);
} finally {
searchHolder.decref();
@@ -444,7 +444,7 @@ final class ShardLeaderElectionContext extends ShardLeaderElectionContextBase {
try (SolrCore core = cc.getCore(coreName)) {
if (core == null) {
- log.debug("SolrCore not found:" + coreName + " in " + cc.getCoreNames());
+ log.debug("SolrCore not found:" + coreName + " in " + cc.getLoadedCoreNames());
return;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java b/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
index 1c1a080..0df55b8 100644
--- a/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
+++ b/solr/core/src/java/org/apache/solr/cloud/RecoveryStrategy.java
@@ -230,7 +230,7 @@ public class RecoveryStrategy extends Thread implements Closeable {
SolrIndexSearcher searcher = searchHolder.get();
Directory dir = core.getDirectoryFactory().get(core.getIndexDir(), DirContext.META_DATA, null);
try {
- LOG.debug(core.getCoreDescriptor().getCoreContainer()
+ LOG.debug(core.getCoreContainer()
.getZkController().getNodeName()
+ " replicated "
+ searcher.search(new MatchAllDocsQuery(), 1).totalHits
@@ -618,7 +618,7 @@ public class RecoveryStrategy extends Thread implements Closeable {
SolrIndexSearcher searcher = searchHolder.get();
try {
final int totalHits = searcher.search(new MatchAllDocsQuery(), 1).totalHits;
- final String nodeName = core.getCoreDescriptor().getCoreContainer().getZkController().getNodeName();
+ final String nodeName = core.getCoreContainer().getZkController().getNodeName();
LOG.debug("[{}] {} [{} total hits]", nodeName, op, totalHits);
} finally {
searchHolder.decref();
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/cloud/ZkController.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/cloud/ZkController.java b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
index fe32d58..0e04637 100644
--- a/solr/core/src/java/org/apache/solr/cloud/ZkController.java
+++ b/solr/core/src/java/org/apache/solr/cloud/ZkController.java
@@ -1143,7 +1143,7 @@ public class ZkController {
MDCLoggingContext.setCore(core);
}
} else {
- MDCLoggingContext.setCoreDescriptor(cd);
+ MDCLoggingContext.setCoreDescriptor(cc, cd);
}
try {
String collection = cd.getCloudDescriptor().getCollectionName();
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/cloud/rule/ImplicitSnitch.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/cloud/rule/ImplicitSnitch.java b/solr/core/src/java/org/apache/solr/cloud/rule/ImplicitSnitch.java
index 00e27c3..a4e998d 100644
--- a/solr/core/src/java/org/apache/solr/cloud/rule/ImplicitSnitch.java
+++ b/solr/core/src/java/org/apache/solr/cloud/rule/ImplicitSnitch.java
@@ -45,7 +45,7 @@ public class ImplicitSnitch implements CoreAdminHandler.Invocable {
Map<String, Object> result = new HashMap<>();
CoreContainer cc = (CoreContainer) req.getContext().get(CoreContainer.class.getName());
if (req.getParams().getInt(CORES, -1) == 1) {
- result.put(CORES, cc.getCoreNames().size());
+ result.put(CORES, cc.getLoadedCoreNames().size());
}
if (req.getParams().getInt(DISK, -1) == 1) {
try {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/core/CoreContainer.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/CoreContainer.java b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
index d66e7ad..016844f 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreContainer.java
@@ -117,7 +117,7 @@ public class CoreContainer {
public final Exception exception;
public CoreLoadFailure(CoreDescriptor cd, Exception loadFailure) {
- this.cd = cd;
+ this.cd = new CoreDescriptor(cd.getName(), cd);
this.exception = loadFailure;
}
}
@@ -207,8 +207,6 @@ public class CoreContainer {
return this.containerHandlers;
}
- // private ClientConnectionManager clientConnectionManager = new PoolingClientConnectionManager();
-
{
log.debug("New CoreContainer " + System.identityHashCode(this));
}
@@ -541,7 +539,7 @@ public class CoreContainer {
for (final CoreDescriptor cd : cds) {
if (cd.isTransient() || !cd.isLoadOnStartup()) {
- solrCores.putDynamicDescriptor(cd.getName(), cd);
+ getTransientCacheHandler().addTransientDescriptor(cd.getName(), cd);
} else if (asyncSolrCoreLoad) {
solrCores.markCoreAsLoading(cd);
}
@@ -772,50 +770,35 @@ public class CoreContainer {
return coresLocator;
}
- protected SolrCore registerCore(String name, SolrCore core, boolean registerInZk, boolean skipRecovery) {
+ protected SolrCore registerCore(CoreDescriptor cd, SolrCore core, boolean registerInZk, boolean skipRecovery) {
if( core == null ) {
throw new RuntimeException( "Can not register a null core." );
}
-
- // We can register a core when creating them via the admin UI, so we need to ensure that the dynamic descriptors
- // are up to date
- CoreDescriptor cd = core.getCoreDescriptor();
- if ((cd.isTransient() || ! cd.isLoadOnStartup())
- && solrCores.getDynamicDescriptor(name) == null) {
- // Store it away for later use. includes non-transient but not
- // loaded at startup cores.
- solrCores.putDynamicDescriptor(name, cd);
- }
-
- SolrCore old;
-
+
if (isShutDown) {
core.close();
throw new IllegalStateException("This CoreContainer has been closed");
}
- if (cd.isTransient()) {
- old = solrCores.putTransientCore(cfg, name, core, loader);
- } else {
- old = solrCores.putCore(name, core);
- }
+ SolrCore old = solrCores.putCore(cd, core);
/*
* set both the name of the descriptor and the name of the
* core, since the descriptors name is used for persisting.
*/
- core.setName(name);
+ solrCores.addCoreDescriptor(new CoreDescriptor(cd.getName(), cd));
+ core.setName(cd.getName());
- coreInitFailures.remove(name);
+ coreInitFailures.remove(cd.getName());
if( old == null || old == core) {
- log.debug( "registering core: "+name );
+ log.debug( "registering core: " + cd.getName() );
if (registerInZk) {
zkSys.registerInZk(core, false, skipRecovery);
}
return null;
}
else {
- log.debug( "replacing core: "+name );
+ log.debug( "replacing core: " + cd.getName() );
old.close();
if (registerInZk) {
zkSys.registerInZk(core, false, skipRecovery);
@@ -843,10 +826,10 @@ public class CoreContainer {
*/
public SolrCore create(String coreName, Path instancePath, Map<String, String> parameters, boolean newCollection) {
- CoreDescriptor cd = new CoreDescriptor(this, coreName, instancePath, parameters);
+ CoreDescriptor cd = new CoreDescriptor(coreName, instancePath, parameters, getContainerProperties(), isZooKeeperAware());
// TODO: There's a race here, isn't there?
- if (getAllCoreNames().contains(coreName)) {
+ if (getLoadedCoreNames().contains(coreName)) {
log.warn("Creating a core with existing name is not allowed");
// TODO: Shouldn't this be a BAD_REQUEST?
throw new SolrException(ErrorCode.SERVER_ERROR, "Core with name '" + coreName + "' already exists.");
@@ -919,7 +902,7 @@ public class CoreContainer {
SolrCore core = null;
try {
- MDCLoggingContext.setCoreDescriptor(dcore);
+ MDCLoggingContext.setCoreDescriptor(this, dcore);
SolrIdentifierValidator.validateCoreName(dcore.getName());
if (zkSys.getZkController() != null) {
zkSys.getZkController().preRegister(dcore);
@@ -929,7 +912,7 @@ public class CoreContainer {
dcore.setConfigSetTrusted(coreConfig.isTrusted());
log.info("Creating SolrCore '{}' using configuration from {}, trusted={}", dcore.getName(), coreConfig.getName(), dcore.isConfigSetTrusted());
try {
- core = new SolrCore(dcore, coreConfig);
+ core = new SolrCore(this, dcore, coreConfig);
} catch (SolrException e) {
core = processCoreCreateException(e, dcore, coreConfig);
}
@@ -939,7 +922,7 @@ public class CoreContainer {
core.getUpdateHandler().getUpdateLog().recoverFromLog();
}
- registerCore(dcore.getName(), core, publishState, newCollection);
+ registerCore(dcore, core, publishState, newCollection);
return core;
} catch (Exception e) {
@@ -1003,7 +986,7 @@ public class CoreContainer {
if (leader != null && leader.getState() == State.ACTIVE) {
log.info("Found active leader, will attempt to create fresh core and recover.");
resetIndexDirectory(dcore, coreConfig);
- return new SolrCore(dcore, coreConfig);
+ return new SolrCore(this, dcore, coreConfig);
}
} catch (SolrException se) {
se.addSuppressed(original);
@@ -1059,7 +1042,7 @@ public class CoreContainer {
/**
* @return a Collection of the names that loaded cores are mapped to
*/
- public Collection<String> getCoreNames() {
+ public Collection<String> getLoadedCoreNames() {
return solrCores.getLoadedCoreNames();
}
@@ -1115,13 +1098,18 @@ public class CoreContainer {
public void reload(String name) {
SolrCore core = solrCores.getCoreFromAnyList(name, false);
if (core != null) {
- CoreDescriptor cd = core.getCoreDescriptor();
+ // The underlying core properties files may have changed, we don't really know. So we have a (perhaps) stale
+ // CoreDescriptor we need to reload it if it's out there.
+ CorePropertiesLocator cpl = new CorePropertiesLocator(null);
+ CoreDescriptor cd = cpl.reload(this, core.getCoreDescriptor());
+ if (cd == null) cd = core.getCoreDescriptor();
+ solrCores.addCoreDescriptor(cd);
try {
solrCores.waitAddPendingCoreOps(cd.getName());
ConfigSet coreConfig = coreConfigService.getConfig(cd);
log.info("Reloading SolrCore '{}' using configuration from {}", cd.getName(), coreConfig.getName());
SolrCore newCore = core.reload(coreConfig);
- registerCore(cd.getName(), newCore, false, false);
+ registerCore(cd, newCore, false, false);
} catch (SolrCoreState.CoreIsClosedException e) {
throw e;
} catch (Exception e) {
@@ -1193,7 +1181,6 @@ public class CoreContainer {
boolean close = solrCores.isLoadedNotPendingClose(name);
SolrCore core = solrCores.remove(name);
coresLocator.delete(this, cd);
-
if (core == null) {
// transient core
SolrCore.deleteUnloadedCore(cd, deleteDataDir, deleteInstanceDir);
@@ -1208,7 +1195,7 @@ public class CoreContainer {
core.getSolrCoreState().cancelRecovery();
}
- core.unloadOnClose(deleteIndexDir, deleteDataDir, deleteInstanceDir);
+ core.unloadOnClose(cd, deleteIndexDir, deleteDataDir, deleteInstanceDir);
if (close)
core.closeAndWait();
@@ -1222,6 +1209,9 @@ public class CoreContainer {
throw new SolrException(ErrorCode.SERVER_ERROR, "Error unregistering core [" + name + "] from cloud state", e);
}
}
+ if (deleteInstanceDir) { // we aren't going to reload this if we delete the instance dir.
+ solrCores.removeCoreDescriptor(cd);
+ }
}
public void rename(String name, String toName) {
@@ -1231,8 +1221,15 @@ public class CoreContainer {
String oldRegistryName = core.getCoreMetricManager().getRegistryName();
String newRegistryName = SolrCoreMetricManager.createRegistryName(core.getCoreDescriptor().getCollectionName(), toName);
metricManager.swapRegistries(oldRegistryName, newRegistryName);
- registerCore(toName, core, true, false);
+ // The old coreDescriptor is obsolete, so remove it. registerCore will put it back.
+ CoreDescriptor cd = core.getCoreDescriptor();
+ solrCores.removeCoreDescriptor(cd);
+ cd.setProperty("name", toName);
+ solrCores.addCoreDescriptor(cd);
+ core.setName(toName);
+ registerCore(cd, core, true, false);
SolrCore old = solrCores.remove(name);
+
coresLocator.rename(this, old.getCoreDescriptor(), core.getCoreDescriptor());
}
}
@@ -1247,12 +1244,7 @@ public class CoreContainer {
}
public CoreDescriptor getCoreDescriptor(String coreName) {
- // TODO make this less hideous!
- for (CoreDescriptor cd : getCoreDescriptors()) {
- if (cd.getName().equals(coreName))
- return cd;
- }
- return null;
+ return solrCores.getCoreDescriptor(coreName);
}
public Path getCoreRootDirectory() {
@@ -1272,29 +1264,32 @@ public class CoreContainer {
// Do this in two phases since we don't want to lock access to the cores over a load.
SolrCore core = solrCores.getCoreFromAnyList(name, true);
+ // If a core is loaded, we're done just return it.
if (core != null) {
return core;
}
- // OK, it's not presently in any list, is it in the list of dynamic cores but not loaded yet? If so, load it.
- CoreDescriptor desc = solrCores.getDynamicDescriptor(name);
- if (desc == null) { //Nope, no transient core with this name
+ // If it's not yet loaded, we can check if it's had a core init failure and "do the right thing"
+ CoreDescriptor desc = solrCores.getCoreDescriptor(name);
- // if there was an error initializing this core, throw a 500
- // error with the details for clients attempting to access it.
- CoreLoadFailure loadFailure = getCoreInitFailures().get(name);
- if (null != loadFailure) {
- throw new SolrCoreInitializationException(name, loadFailure.exception);
- }
- // otherwise the user is simply asking for something that doesn't exist.
- return null;
+ // if there was an error initializing this core, throw a 500
+ // error with the details for clients attempting to access it.
+ CoreLoadFailure loadFailure = getCoreInitFailures().get(name);
+ if (null != loadFailure) {
+ throw new SolrCoreInitializationException(name, loadFailure.exception);
}
-
+ // This is a bit of awkwardness where SolrCloud and transient cores don't play nice together. For transient cores,
+ // we have to allow them to be created at any time there hasn't been a core load failure (use reload to cure that).
+ // But for TestConfigSetsAPI.testUploadWithScriptUpdateProcessor, this needs to _not_ try to load the core if
+ // the core is null and there was an error. If you change this, be sure to run both TestConfiSetsAPI and
+ // TestLazyCores
+ if (desc == null || zkSys.getZkController() != null) return null;
+
// This will put an entry in pending core ops if the core isn't loaded
core = solrCores.waitAddPendingCoreOps(name);
if (isShutDown) return null; // We're quitting, so stop. This needs to be after the wait above since we may come off
- // the wait as a consequence of shutting down.
+ // the wait as a consequence of shutting down.
try {
if (core == null) {
if (zkSys.getZkController() != null) {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/core/CoreDescriptor.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/CoreDescriptor.java b/solr/core/src/java/org/apache/solr/core/CoreDescriptor.java
index 0dc2c71..1747fa2 100644
--- a/solr/core/src/java/org/apache/solr/core/CoreDescriptor.java
+++ b/solr/core/src/java/org/apache/solr/core/CoreDescriptor.java
@@ -121,8 +121,6 @@ public class CoreDescriptor {
CloudDescriptor.NUM_SHARDS
);
- private final CoreContainer coreContainer;
-
private final CloudDescriptor cloudDesc;
private final Path instanceDir;
@@ -139,8 +137,9 @@ public class CoreDescriptor {
/** The properties for this core, substitutable by resource loaders */
protected final Properties substitutableProperties = new Properties();
- public CoreDescriptor(CoreContainer container, String name, Path instanceDir, String... properties) {
- this(container, name, instanceDir, toMap(properties));
+ public CoreDescriptor(String name, Path instanceDir, Properties containerProperties,
+ boolean isZooKeeperAware, String... properties) {
+ this(name, instanceDir, toMap(properties), containerProperties, isZooKeeperAware);
}
private static Map<String, String> toMap(String... properties) {
@@ -154,12 +153,14 @@ public class CoreDescriptor {
/**
* Create a new CoreDescriptor with a given name and instancedir
- * @param container the CoreDescriptor's container
* @param name the CoreDescriptor's name
* @param instanceDir the CoreDescriptor's instancedir
+ * @param containerProperties the enclosing container properties for variable resolution
+ * @param isZooKeeperAware whether we are part of SolrCloud or not.
*/
- public CoreDescriptor(CoreContainer container, String name, Path instanceDir) {
- this(container, name, instanceDir, Collections.emptyMap());
+ public CoreDescriptor(String name, Path instanceDir,
+ Properties containerProperties, boolean isZooKeeperAware) {
+ this(name, instanceDir, Collections.emptyMap(), containerProperties, isZooKeeperAware);
}
/**
@@ -168,7 +169,6 @@ public class CoreDescriptor {
* @param other the CoreDescriptor to copy
*/
public CoreDescriptor(String coreName, CoreDescriptor other) {
- this.coreContainer = other.coreContainer;
this.cloudDesc = other.cloudDesc;
this.instanceDir = other.instanceDir;
this.originalExtraProperties.putAll(other.originalExtraProperties);
@@ -183,20 +183,20 @@ public class CoreDescriptor {
/**
* Create a new CoreDescriptor.
- * @param container the CoreDescriptor's container
* @param name the CoreDescriptor's name
* @param instanceDir a Path resolving to the instanceDir
* @param coreProps a Map of the properties for this core
+ * @param containerProperties the properties from the enclosing container.
+ * @param isZooKeeperAware if true, we ar in SolrCloud mode.
*/
- public CoreDescriptor(CoreContainer container, String name, Path instanceDir,
- Map<String, String> coreProps) {
- this.coreContainer = container;
+
+ public CoreDescriptor(String name, Path instanceDir, Map<String, String> coreProps,
+ Properties containerProperties, boolean isZooKeeperAware) {
this.instanceDir = instanceDir;
originalCoreProperties.setProperty(CORE_NAME, name);
- Properties containerProperties = container.getContainerProperties();
name = PropertiesUtil.substituteProperty(checkPropertyIsNotEmpty(name, CORE_NAME),
containerProperties);
@@ -221,7 +221,7 @@ public class CoreDescriptor {
buildSubstitutableProperties();
// TODO maybe make this a CloudCoreDescriptor subclass?
- if (container.isZooKeeperAware()) {
+ if (isZooKeeperAware) {
cloudDesc = new CloudDescriptor(name, coreProperties, this);
}
else {
@@ -324,15 +324,19 @@ public class CoreDescriptor {
public String getName() {
return coreProperties.getProperty(CORE_NAME);
}
+
+ public void setProperty(String prop, String val) {
+ if (substitutableProperties.containsKey(prop)) {
+ substitutableProperties.setProperty(prop, val);
+ return;
+ }
+ coreProperties.setProperty(prop, val);
+ }
public String getCollectionName() {
return cloudDesc == null ? null : cloudDesc.getCollectionName();
}
- public CoreContainer getCoreContainer() {
- return coreContainer;
- }
-
public CloudDescriptor getCloudDescriptor() {
return cloudDesc;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/core/CorePropertiesLocator.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/CorePropertiesLocator.java b/solr/core/src/java/org/apache/solr/core/CorePropertiesLocator.java
index b37402b..385d11b 100644
--- a/solr/core/src/java/org/apache/solr/core/CorePropertiesLocator.java
+++ b/solr/core/src/java/org/apache/solr/core/CorePropertiesLocator.java
@@ -163,6 +163,14 @@ public class CorePropertiesLocator implements CoresLocator {
return cds;
}
+ @Override
+ public CoreDescriptor reload(CoreContainer cc, CoreDescriptor cd) {
+ if (cd == null) return null;
+
+ Path coreProps = cd.getInstanceDir().resolve(CoreDescriptor.DEFAULT_EXTERNAL_PROPERTIES_FILE);
+ return buildCoreDescriptor(coreProps, cc);
+ }
+
protected CoreDescriptor buildCoreDescriptor(Path propertiesFile, CoreContainer cc) {
Path instanceDir = propertiesFile.getParent();
@@ -174,7 +182,7 @@ public class CorePropertiesLocator implements CoresLocator {
for (String key : coreProperties.stringPropertyNames()) {
propMap.put(key, coreProperties.getProperty(key));
}
- return new CoreDescriptor(cc, name, instanceDir, propMap);
+ return new CoreDescriptor(name, instanceDir, propMap, cc.getContainerProperties(), cc.isZooKeeperAware());
}
catch (IOException e) {
logger.error("Couldn't load core descriptor from {}:{}", propertiesFile, e.toString());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/core/CoresLocator.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/CoresLocator.java b/solr/core/src/java/org/apache/solr/core/CoresLocator.java
index d4f40cd..beaa690 100644
--- a/solr/core/src/java/org/apache/solr/core/CoresLocator.java
+++ b/solr/core/src/java/org/apache/solr/core/CoresLocator.java
@@ -69,4 +69,13 @@ public interface CoresLocator {
*/
public List<CoreDescriptor> discover(CoreContainer cc);
+ /**
+ * reload an existing CoreDescriptor, that is read it from disk.
+ *
+ * @param cc the CoreContainer
+ * @param cd the old CoreDescriptor. If null, this is a no-op
+ * @return the reloaded coreDescriptor or null
+ */
+ public CoreDescriptor reload(CoreContainer cc, CoreDescriptor cd);
+
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/core/HdfsDirectoryFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/HdfsDirectoryFactory.java b/solr/core/src/java/org/apache/solr/core/HdfsDirectoryFactory.java
index db953d3..15f398a 100644
--- a/solr/core/src/java/org/apache/solr/core/HdfsDirectoryFactory.java
+++ b/solr/core/src/java/org/apache/solr/core/HdfsDirectoryFactory.java
@@ -499,7 +499,7 @@ public class HdfsDirectoryFactory extends CachingDirectoryFactory implements Sol
@Override
public void inform(SolrCore core) {
- setHost(core.getCoreDescriptor().getCoreContainer().getHostName());
+ setHost(core.getCoreContainer().getHostName());
}
@VisibleForTesting
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/core/PluginBag.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/PluginBag.java b/solr/core/src/java/org/apache/solr/core/PluginBag.java
index 65978f3..2b283cd 100644
--- a/solr/core/src/java/org/apache/solr/core/PluginBag.java
+++ b/solr/core/src/java/org/apache/solr/core/PluginBag.java
@@ -455,7 +455,7 @@ public class PluginBag<T> implements AutoCloseable {
}
public RuntimeLib(SolrCore core) {
- coreContainer = core.getCoreDescriptor().getCoreContainer();
+ coreContainer = core.getCoreContainer();
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/core/SolrCore.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/SolrCore.java b/solr/core/src/java/org/apache/solr/core/SolrCore.java
index eb3ac06..9040685 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrCore.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrCore.java
@@ -179,7 +179,6 @@ public final class SolrCore implements SolrInfoMBean, SolrMetricProducer, Closea
private String name;
private String logid; // used to show what name is set
- private CoreDescriptor coreDescriptor;
private boolean isReloaded = false;
@@ -220,6 +219,7 @@ public final class SolrCore implements SolrInfoMBean, SolrMetricProducer, Closea
private Counter newSearcherCounter;
private Counter newSearcherMaxReachedCounter;
private Counter newSearcherOtherErrorsCounter;
+ private final CoreContainer coreContainer;
public Date getStartTimeStamp() { return startTime; }
@@ -423,10 +423,8 @@ public final class SolrCore implements SolrInfoMBean, SolrMetricProducer, Closea
}
public void setName(String v) {
- String oldName = this.name;
this.name = v;
this.logid = (v==null)?"":("["+v+"] ");
- this.coreDescriptor = new CoreDescriptor(v, this.coreDescriptor);
if (coreMetricManager != null) {
coreMetricManager.afterCoreSetName();
}
@@ -635,9 +633,9 @@ public final class SolrCore implements SolrInfoMBean, SolrMetricProducer, Closea
boolean success = false;
SolrCore core = null;
try {
- CoreDescriptor cd = new CoreDescriptor(coreDescriptor.getName(), coreDescriptor);
+ CoreDescriptor cd = new CoreDescriptor(name, getCoreDescriptor());
cd.loadExtraProperties(); //Reload the extra properties
- core = new SolrCore(getName(), getDataDir(), coreConfig.getSolrConfig(),
+ core = new SolrCore(coreContainer, getName(), getDataDir(), coreConfig.getSolrConfig(),
coreConfig.getIndexSchema(), coreConfig.getProperties(),
cd, updateHandler, solrDelPolicy, currentCore, true);
@@ -657,7 +655,7 @@ public final class SolrCore implements SolrInfoMBean, SolrMetricProducer, Closea
}
private DirectoryFactory initDirectoryFactory() {
- return DirectoryFactory.loadDirectoryFactory(solrConfig, getCoreDescriptor().getCoreContainer(), coreMetricManager.getRegistryName());
+ return DirectoryFactory.loadDirectoryFactory(solrConfig, coreContainer, coreMetricManager.getRegistryName());
}
private RecoveryStrategy.Builder initRecoveryStrategyBuilder() {
@@ -827,12 +825,16 @@ public final class SolrCore implements SolrInfoMBean, SolrMetricProducer, Closea
return createReloadedUpdateHandler(className, "Update Handler", updateHandler);
}
- public SolrCore(CoreDescriptor cd, ConfigSet coreConfig) {
- this(cd.getName(), null, coreConfig.getSolrConfig(), coreConfig.getIndexSchema(), coreConfig.getProperties(),
+ public SolrCore(CoreContainer coreContainer, CoreDescriptor cd, ConfigSet coreConfig) {
+ this(coreContainer, cd.getName(), null, coreConfig.getSolrConfig(), coreConfig.getIndexSchema(), coreConfig.getProperties(),
cd, null, null, null, false);
}
-
+ public CoreContainer getCoreContainer() {
+ return coreContainer;
+ }
+
+
/**
* Creates a new core and register it in the list of cores. If a core with the
* same name already exists, it will be stopped and replaced by this one.
@@ -846,14 +848,18 @@ public final class SolrCore implements SolrInfoMBean, SolrMetricProducer, Closea
*
* @since solr 1.3
*/
- public SolrCore(String name, String dataDir, SolrConfig config,
- IndexSchema schema, NamedList configSetProperties,
- CoreDescriptor coreDescriptor, UpdateHandler updateHandler,
- IndexDeletionPolicyWrapper delPolicy, SolrCore prev, boolean reload) {
+ public SolrCore(CoreContainer coreContainer, String name, String dataDir, SolrConfig config,
+ IndexSchema schema, NamedList configSetProperties,
+ CoreDescriptor coreDescriptor, UpdateHandler updateHandler,
+ IndexDeletionPolicyWrapper delPolicy, SolrCore prev, boolean reload) {
+
+ this.coreContainer = coreContainer;
assert ObjectReleaseTracker.track(searcherExecutor); // ensure that in unclean shutdown tests we still close this
-
- this.coreDescriptor = Objects.requireNonNull(coreDescriptor, "coreDescriptor cannot be null");
+
+ CoreDescriptor cd = Objects.requireNonNull(coreDescriptor, "coreDescriptor cannot be null");
+ coreContainer.solrCores.addCoreDescriptor(cd);
+
setName(name);
MDCLoggingContext.setCore(this);
@@ -881,7 +887,7 @@ public final class SolrCore implements SolrInfoMBean, SolrMetricProducer, Closea
checkVersionFieldExistsInSchema(schema, coreDescriptor);
- SolrMetricManager metricManager = this.coreDescriptor.getCoreContainer().getMetricManager();
+ SolrMetricManager metricManager = coreContainer.getMetricManager();
// initialize searcher-related metrics
initializeMetrics(metricManager, coreMetricManager.getRegistryName(), null);
@@ -1021,15 +1027,15 @@ public final class SolrCore implements SolrInfoMBean, SolrMetricProducer, Closea
/** Set UpdateLog to buffer updates if the slice is in construction. */
private void bufferUpdatesIfConstructing(CoreDescriptor coreDescriptor) {
- final CoreContainer cc = coreDescriptor.getCoreContainer();
- if (cc != null && cc.isZooKeeperAware()) {
+
+ if (coreContainer != null && coreContainer.isZooKeeperAware()) {
if (reqHandlers.get("/get") == null) {
log.warn("WARNING: RealTimeGetHandler is not registered at /get. " +
"SolrCloud will always use full index replication instead of the more efficient PeerSync method.");
}
// ZK pre-register would have already happened so we read slice properties now
- final ClusterState clusterState = cc.getZkController().getClusterState();
+ final ClusterState clusterState = coreContainer.getZkController().getClusterState();
final DocCollection collection = clusterState.getCollection(coreDescriptor.getCloudDescriptor().getCollectionName());
final Slice slice = collection.getSlice(coreDescriptor.getCloudDescriptor().getShardId());
if (slice.getState() == Slice.State.CONSTRUCTION) {
@@ -1121,7 +1127,7 @@ public final class SolrCore implements SolrInfoMBean, SolrMetricProducer, Closea
manager.registerGauge(registry, () -> getIndexDir(), true, "indexDir", Category.CORE.toString());
manager.registerGauge(registry, () -> getIndexSize(), true, "sizeInBytes", Category.INDEX.toString());
manager.registerGauge(registry, () -> NumberUtils.readableSize(getIndexSize()), true, "size", Category.INDEX.toString());
- manager.registerGauge(registry, () -> coreDescriptor.getCoreContainer().getCoreNames(this), true, "aliases", Category.CORE.toString());
+ manager.registerGauge(registry, () -> coreContainer.getCoreNames(this), true, "aliases", Category.CORE.toString());
// initialize disk total / free metrics
Path dataDirPath = Paths.get(dataDir);
File dataDirFile = dataDirPath.toFile();
@@ -2722,7 +2728,7 @@ public final class SolrCore implements SolrInfoMBean, SolrMetricProducer, Closea
if (initArgs == null)
initArgs = new NamedList<>();
- String collection = coreDescriptor.getCollectionName();
+ String collection = getCoreDescriptor().getCollectionName();
StorageIO storageIO =
ManagedResourceStorage.newStorageIO(collection, resourceLoader, initArgs);
mgr.init(resourceLoader, initArgs, storageIO);
@@ -2731,7 +2737,7 @@ public final class SolrCore implements SolrInfoMBean, SolrMetricProducer, Closea
}
public CoreDescriptor getCoreDescriptor() {
- return coreDescriptor;
+ return coreContainer.getCoreDescriptor(name);
}
public IndexDeletionPolicyWrapper getDeletionPolicy(){
@@ -2793,8 +2799,8 @@ public final class SolrCore implements SolrInfoMBean, SolrMetricProducer, Closea
CoreDescriptor cd = getCoreDescriptor();
if (cd != null) {
- if (null != cd && cd.getCoreContainer() != null) {
- lst.add("aliases", getCoreDescriptor().getCoreContainer().getCoreNames(this));
+ if (coreContainer != null) {
+ lst.add("aliases", coreContainer.getCoreNames(this));
}
CloudDescriptor cloudDesc = cd.getCloudDescriptor();
if (cloudDesc != null) {
@@ -2818,7 +2824,7 @@ public final class SolrCore implements SolrInfoMBean, SolrMetricProducer, Closea
return codec;
}
- public void unloadOnClose(boolean deleteIndexDir, boolean deleteDataDir, boolean deleteInstanceDir) {
+ public void unloadOnClose(final CoreDescriptor desc, boolean deleteIndexDir, boolean deleteDataDir, boolean deleteInstanceDir) {
if (deleteIndexDir) {
try {
directoryFactory.remove(getIndexDir());
@@ -2841,13 +2847,12 @@ public final class SolrCore implements SolrInfoMBean, SolrMetricProducer, Closea
@Override
public void postClose(SolrCore core) {
- CoreDescriptor cd = core.getCoreDescriptor();
- if (cd != null) {
+ if (desc != null) {
try {
- FileUtils.deleteDirectory(cd.getInstanceDir().toFile());
+ FileUtils.deleteDirectory(desc.getInstanceDir().toFile());
} catch (IOException e) {
SolrException.log(log, "Failed to delete instance dir for core:"
- + core.getName() + " dir:" + cd.getInstanceDir());
+ + core.getName() + " dir:" + desc.getInstanceDir());
}
}
}
@@ -2906,7 +2911,7 @@ public final class SolrCore implements SolrInfoMBean, SolrMetricProducer, Closea
public static Runnable getConfListener(SolrCore core, ZkSolrResourceLoader zkSolrResourceLoader) {
final String coreName = core.getName();
- final CoreContainer cc = core.getCoreDescriptor().getCoreContainer();
+ final CoreContainer cc = core.getCoreContainer();
final String overlayPath = zkSolrResourceLoader.getConfigSetZkPath() + "/" + ConfigOverlay.RESOURCE_NAME;
final String solrConfigPath = zkSolrResourceLoader.getConfigSetZkPath() + "/" + core.getSolrConfig().getName();
String schemaRes = null;
@@ -3040,7 +3045,6 @@ public final class SolrCore implements SolrInfoMBean, SolrMetricProducer, Closea
if (!BlobRepository.BLOB_KEY_PATTERN_CHECKER.matcher(key).matches()) {
throw new IllegalArgumentException("invalid key format, must end in /N where N is the version number");
}
- CoreContainer coreContainer = getCoreDescriptor().getCoreContainer();
// define the blob
BlobRepository.BlobContentRef blobRef = coreContainer.getBlobRepository().getBlobIncRef(key, decoder);
addCloseHook(new CloseHook() {
@@ -3050,7 +3054,7 @@ public final class SolrCore implements SolrInfoMBean, SolrMetricProducer, Closea
@Override
public void postClose(SolrCore core) {
- core.getCoreDescriptor().getCoreContainer().getBlobRepository().decrementBlobRefCount(blobRef);
+ coreContainer.getBlobRepository().decrementBlobRefCount(blobRef);
}
});
return blobRef;
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/core/SolrCores.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/SolrCores.java b/solr/core/src/java/org/apache/solr/core/SolrCores.java
index 40d5115..ef6fca5 100644
--- a/solr/core/src/java/org/apache/solr/core/SolrCores.java
+++ b/solr/core/src/java/org/apache/solr/core/SolrCores.java
@@ -47,7 +47,8 @@ class SolrCores implements Observer {
private static Object modifyLock = new Object(); // for locking around manipulating any of the core maps.
private final Map<String, SolrCore> cores = new LinkedHashMap<>(); // For "permanent" cores
- private final Map<String, CoreDescriptor> lazyDescriptors = new LinkedHashMap<>();
+ // These descriptors, once loaded, will _not_ be unloaded, i.e. they are not "transient".
+ private final Map<String, CoreDescriptor> residentDesciptors = new LinkedHashMap<>();
private final CoreContainer container;
@@ -67,17 +68,26 @@ class SolrCores implements Observer {
this.container = container;
}
- protected void putDynamicDescriptor(String rawName, CoreDescriptor cd) {
+ protected void addCoreDescriptor(CoreDescriptor p) {
synchronized (modifyLock) {
- if (cd.isTransient()) {
+ if (p.isTransient()) {
+ if (container.getTransientCacheHandler() != null) {
+ container.getTransientCacheHandler().addTransientDescriptor(p.getName(), p);
+ }
+ } else {
+ residentDesciptors.put(p.getName(), p);
+ }
+ }
+ }
+
+ protected void removeCoreDescriptor(CoreDescriptor p) {
+ synchronized (modifyLock) {
+ if (p.isTransient()) {
if (container.getTransientCacheHandler() != null) {
- container.getTransientCacheHandler().addTransientDescriptor(rawName, cd);
- } else {
- log.error("Tried to add transient core to transient handler, but no transient core handler has been found. "
- + " Descriptor: " + cd.toString());
+ container.getTransientCacheHandler().removeTransientDescriptor(p.getName());
}
} else {
- lazyDescriptors.put(rawName, cd);
+ residentDesciptors.remove(p.getName());
}
}
}
@@ -149,10 +159,18 @@ class SolrCores implements Observer {
return retCore;
}
- protected SolrCore putCore(String name, SolrCore core) {
+ // Returns the old core if there was a core of the same name.
+ protected SolrCore putCore(CoreDescriptor cd, SolrCore core) {
synchronized (modifyLock) {
- return cores.put(name, core);
+ if (cd.isTransient()) {
+ if (container.getTransientCacheHandler() != null) {
+ return container.getTransientCacheHandler().addCore(cd.getName(), core);
+ }
+ } else {
+ return cores.put(cd.getName(), core);
+ }
}
+ return null;
}
/**
@@ -231,7 +249,7 @@ class SolrCores implements Observer {
if (container.getTransientCacheHandler() != null) {
set.addAll(container.getTransientCacheHandler().getAllCoreNames());
}
- set.addAll(lazyDescriptors.keySet());
+ set.addAll(residentDesciptors.keySet());
}
return set;
}
@@ -260,13 +278,19 @@ class SolrCores implements Observer {
throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "No such core: " + n1);
}
}
+ // When we swap the cores, we also need to swap the associated core descriptors. Note, this changes the
+ // name of the coreDescriptor by virtue of the c-tor
+ CoreDescriptor cd1 = c1.getCoreDescriptor();
+ addCoreDescriptor(new CoreDescriptor(n1, c0.getCoreDescriptor()));
+ addCoreDescriptor(new CoreDescriptor(n0, cd1));
cores.put(n0, c1);
cores.put(n1, c0);
+ c0.setName(n1);
+ c1.setName(n0);
+
container.getMetricManager().swapRegistries(
c0.getCoreMetricManager().getRegistryName(),
c1.getCoreMetricManager().getRegistryName());
- c0.setName(n1);
- c1.setName(n0);
}
}
@@ -277,12 +301,10 @@ class SolrCores implements Observer {
SolrCore ret = cores.remove(name);
// It could have been a newly-created core. It could have been a transient core. The newly-created cores
// in particular should be checked. It could have been a dynamic core.
- TransientSolrCoreCache transientHandler = container.getTransientCacheHandler();
+ TransientSolrCoreCache transientHandler = container.getTransientCacheHandler();
if (ret == null && transientHandler != null) {
ret = transientHandler.removeCore(name);
- transientHandler.removeTransientDescriptor(name);
}
- lazyDescriptors.remove(name);
return ret;
}
}
@@ -304,14 +326,6 @@ class SolrCores implements Observer {
}
}
- protected CoreDescriptor getDynamicDescriptor(String name) {
- synchronized (modifyLock) {
- CoreDescriptor cd = lazyDescriptors.get(name);
- if (cd != null || container.getTransientCacheHandler() == null) return cd;
- return container.getTransientCacheHandler().getTransientDescriptor(name);
- }
- }
-
// See SOLR-5366 for why the UNLOAD command needs to know whether a core is actually loaded or not, it might have
// to close the core. However, there's a race condition. If the core happens to be in the pending "to close" queue,
// we should NOT close it in unload core.
@@ -350,7 +364,7 @@ class SolrCores implements Observer {
protected CoreDescriptor getUnloadedCoreDescriptor(String cname) {
synchronized (modifyLock) {
- CoreDescriptor desc = lazyDescriptors.get(cname);
+ CoreDescriptor desc = residentDesciptors.get(cname);
if (desc == null) {
if (container.getTransientCacheHandler() == null) return null;
desc = container.getTransientCacheHandler().getTransientDescriptor(cname);
@@ -439,10 +453,8 @@ class SolrCores implements Observer {
*/
public CoreDescriptor getCoreDescriptor(String coreName) {
synchronized (modifyLock) {
- if (cores.containsKey(coreName))
- return cores.get(coreName).getCoreDescriptor();
- if (lazyDescriptors.containsKey(coreName) || container.getTransientCacheHandler() == null)
- return lazyDescriptors.get(coreName);
+ if (residentDesciptors.containsKey(coreName))
+ return residentDesciptors.get(coreName);
return container.getTransientCacheHandler().getTransientDescriptor(coreName);
}
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/core/ZkContainer.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/ZkContainer.java b/solr/core/src/java/org/apache/solr/core/ZkContainer.java
index 6665c4e..16ba4d8 100644
--- a/solr/core/src/java/org/apache/solr/core/ZkContainer.java
+++ b/solr/core/src/java/org/apache/solr/core/ZkContainer.java
@@ -115,7 +115,7 @@ public class ZkContainer {
@Override
public List<CoreDescriptor> getCurrentDescriptors() {
List<CoreDescriptor> descriptors = new ArrayList<>(
- cc.getCoreNames().size());
+ cc.getLoadedCoreNames().size());
Collection<SolrCore> cores = cc.getCores();
for (SolrCore core : cores) {
descriptors.add(core.getCoreDescriptor());
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/CdcrBufferStateManager.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/CdcrBufferStateManager.java b/solr/core/src/java/org/apache/solr/handler/CdcrBufferStateManager.java
index 713d6fc..fd8d4bb 100644
--- a/solr/core/src/java/org/apache/solr/handler/CdcrBufferStateManager.java
+++ b/solr/core/src/java/org/apache/solr/handler/CdcrBufferStateManager.java
@@ -62,7 +62,7 @@ class CdcrBufferStateManager extends CdcrStateManager {
// Startup and register the watcher at startup
try {
- SolrZkClient zkClient = core.getCoreDescriptor().getCoreContainer().getZkController().getZkClient();
+ SolrZkClient zkClient = core.getCoreContainer().getZkController().getZkClient();
watcher = this.initWatcher(zkClient);
this.setState(CdcrParams.BufferState.get(zkClient.getData(this.getZnodePath(), watcher, null, true)));
} catch (KeeperException | InterruptedException e) {
@@ -103,7 +103,7 @@ class CdcrBufferStateManager extends CdcrStateManager {
* action.
*/
void synchronize() {
- SolrZkClient zkClient = core.getCoreDescriptor().getCoreContainer().getZkController().getZkClient();
+ SolrZkClient zkClient = core.getCoreContainer().getZkController().getZkClient();
try {
zkClient.setData(this.getZnodePath(), this.getState().getBytes(), true);
// check if nobody changed it in the meantime, and set a new watcher
@@ -114,7 +114,7 @@ class CdcrBufferStateManager extends CdcrStateManager {
}
private void createStateNode() {
- SolrZkClient zkClient = core.getCoreDescriptor().getCoreContainer().getZkController().getZkClient();
+ SolrZkClient zkClient = core.getCoreContainer().getZkController().getZkClient();
try {
if (!zkClient.exists(this.getZnodePath(), true)) {
if (!zkClient.exists(this.getZnodeBase(), true)) {
@@ -158,7 +158,7 @@ class CdcrBufferStateManager extends CdcrStateManager {
if (Event.EventType.None.equals(event.getType())) {
return;
}
- SolrZkClient zkClient = core.getCoreDescriptor().getCoreContainer().getZkController().getZkClient();
+ SolrZkClient zkClient = core.getCoreContainer().getZkController().getZkClient();
try {
CdcrParams.BufferState state = CdcrParams.BufferState.get(zkClient.getData(CdcrBufferStateManager.this.getZnodePath(), watcher, null, true));
log.info("Received new CDCR buffer state from watcher: {} @ {}:{}", state, collectionName, shard);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/CdcrLeaderStateManager.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/CdcrLeaderStateManager.java b/solr/core/src/java/org/apache/solr/handler/CdcrLeaderStateManager.java
index 7d8ddc4..1b4d8af 100644
--- a/solr/core/src/java/org/apache/solr/handler/CdcrLeaderStateManager.java
+++ b/solr/core/src/java/org/apache/solr/handler/CdcrLeaderStateManager.java
@@ -53,8 +53,8 @@ class CdcrLeaderStateManager extends CdcrStateManager {
// Fetch leader state and register the watcher at startup
try {
- SolrZkClient zkClient = core.getCoreDescriptor().getCoreContainer().getZkController().getZkClient();
- ClusterState clusterState = core.getCoreDescriptor().getCoreContainer().getZkController().getClusterState();
+ SolrZkClient zkClient = core.getCoreContainer().getZkController().getZkClient();
+ ClusterState clusterState = core.getCoreContainer().getZkController().getClusterState();
watcher = this.initWatcher(zkClient);
// if the node does not exist, it means that the leader was not yet registered. This can happen
@@ -89,7 +89,7 @@ class CdcrLeaderStateManager extends CdcrStateManager {
}
private void checkIfIAmLeader() throws KeeperException, InterruptedException {
- SolrZkClient zkClient = core.getCoreDescriptor().getCoreContainer().getZkController().getZkClient();
+ SolrZkClient zkClient = core.getCoreContainer().getZkController().getZkClient();
ZkNodeProps props = ZkNodeProps.load(zkClient.getData(CdcrLeaderStateManager.this.getZnodePath(), null, null, true));
if (props != null) {
CdcrLeaderStateManager.this.setAmILeader(props.get("core").equals(core.getName()));
@@ -144,8 +144,8 @@ class CdcrLeaderStateManager extends CdcrStateManager {
try {
log.info("Received new leader state @ {}:{}", collectionName, shard);
- SolrZkClient zkClient = core.getCoreDescriptor().getCoreContainer().getZkController().getZkClient();
- ClusterState clusterState = core.getCoreDescriptor().getCoreContainer().getZkController().getClusterState();
+ SolrZkClient zkClient = core.getCoreContainer().getZkController().getZkClient();
+ ClusterState clusterState = core.getCoreContainer().getZkController().getClusterState();
if (CdcrLeaderStateManager.this.isLeaderRegistered(zkClient, clusterState)) {
CdcrLeaderStateManager.this.checkIfIAmLeader();
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/CdcrProcessStateManager.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/CdcrProcessStateManager.java b/solr/core/src/java/org/apache/solr/handler/CdcrProcessStateManager.java
index b1c8dda..05be077 100644
--- a/solr/core/src/java/org/apache/solr/handler/CdcrProcessStateManager.java
+++ b/solr/core/src/java/org/apache/solr/handler/CdcrProcessStateManager.java
@@ -62,7 +62,7 @@ class CdcrProcessStateManager extends CdcrStateManager {
// Register the watcher at startup
try {
- SolrZkClient zkClient = core.getCoreDescriptor().getCoreContainer().getZkController().getZkClient();
+ SolrZkClient zkClient = core.getCoreContainer().getZkController().getZkClient();
watcher = this.initWatcher(zkClient);
this.setState(CdcrParams.ProcessState.get(zkClient.getData(this.getZnodePath(), watcher, null, true)));
} catch (KeeperException | InterruptedException e) {
@@ -103,7 +103,7 @@ class CdcrProcessStateManager extends CdcrStateManager {
* action.
*/
void synchronize() {
- SolrZkClient zkClient = core.getCoreDescriptor().getCoreContainer().getZkController().getZkClient();
+ SolrZkClient zkClient = core.getCoreContainer().getZkController().getZkClient();
try {
zkClient.setData(this.getZnodePath(), this.getState().getBytes(), true);
// check if nobody changed it in the meantime, and set a new watcher
@@ -114,7 +114,7 @@ class CdcrProcessStateManager extends CdcrStateManager {
}
private void createStateNode() {
- SolrZkClient zkClient = core.getCoreDescriptor().getCoreContainer().getZkController().getZkClient();
+ SolrZkClient zkClient = core.getCoreContainer().getZkController().getZkClient();
try {
if (!zkClient.exists(this.getZnodePath(), true)) {
if (!zkClient.exists(this.getZnodeBase(), true)) { // Should be a no-op if the node exists
@@ -158,7 +158,7 @@ class CdcrProcessStateManager extends CdcrStateManager {
if (Event.EventType.None.equals(event.getType())) {
return;
}
- SolrZkClient zkClient = core.getCoreDescriptor().getCoreContainer().getZkController().getZkClient();
+ SolrZkClient zkClient = core.getCoreContainer().getZkController().getZkClient();
try {
CdcrParams.ProcessState state = CdcrParams.ProcessState.get(zkClient.getData(CdcrProcessStateManager.this.getZnodePath(), watcher, null, true));
log.info("Received new CDCR process state from watcher: {} @ {}:{}", state, collectionName, shard);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/CdcrReplicatorManager.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/CdcrReplicatorManager.java b/solr/core/src/java/org/apache/solr/handler/CdcrReplicatorManager.java
index 528e0b7..6f0d704 100644
--- a/solr/core/src/java/org/apache/solr/handler/CdcrReplicatorManager.java
+++ b/solr/core/src/java/org/apache/solr/handler/CdcrReplicatorManager.java
@@ -236,7 +236,7 @@ class CdcrReplicatorManager implements CdcrStateManager.CdcrStateObserver {
this.ulog = (CdcrUpdateLog) core.getUpdateHandler().getUpdateLog();
this.state = state;
this.targetCollection = state.getTargetCollection();
- String baseUrl = core.getCoreDescriptor().getCoreContainer().getZkController().getBaseUrl();
+ String baseUrl = core.getCoreContainer().getZkController().getBaseUrl();
this.myCoreUrl = ZkCoreNodeProps.getCoreUrl(baseUrl, core.getName());
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/CdcrRequestHandler.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/CdcrRequestHandler.java b/solr/core/src/java/org/apache/solr/handler/CdcrRequestHandler.java
index ba174f9..44c8646 100644
--- a/solr/core/src/java/org/apache/solr/handler/CdcrRequestHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/CdcrRequestHandler.java
@@ -244,7 +244,7 @@ public class CdcrRequestHandler extends RequestHandlerBase implements SolrCoreAw
collection = core.getCoreDescriptor().getCloudDescriptor().getCollectionName();
// Make sure that the core is ZKAware
- if (!core.getCoreDescriptor().getCoreContainer().isZooKeeperAware()) {
+ if (!core.getCoreContainer().isZooKeeperAware()) {
throw new SolrException(SolrException.ErrorCode.SERVER_ERROR,
"Solr instance is not running in SolrCloud mode.");
}
@@ -390,7 +390,7 @@ public class CdcrRequestHandler extends RequestHandlerBase implements SolrCoreAw
*/
private void handleCollectionCheckpointAction(SolrQueryRequest req, SolrQueryResponse rsp)
throws IOException, SolrServerException {
- ZkController zkController = core.getCoreDescriptor().getCoreContainer().getZkController();
+ ZkController zkController = core.getCoreContainer().getZkController();
try {
zkController.getZkStateReader().forceUpdateCollection(collection);
} catch (Exception e) {
@@ -638,7 +638,7 @@ public class CdcrRequestHandler extends RequestHandlerBase implements SolrCoreAw
running.set(true);
String masterUrl = req.getParams().get(ReplicationHandler.MASTER_URL);
bootstrapCallable = new BootstrapCallable(masterUrl, core);
- bootstrapFuture = core.getCoreDescriptor().getCoreContainer().getUpdateShardHandler().getRecoveryExecutor().submit(bootstrapCallable);
+ bootstrapFuture = core.getCoreContainer().getUpdateShardHandler().getRecoveryExecutor().submit(bootstrapCallable);
try {
bootstrapFuture.get();
} catch (InterruptedException e) {
@@ -659,7 +659,7 @@ public class CdcrRequestHandler extends RequestHandlerBase implements SolrCoreAw
};
try {
- core.getCoreDescriptor().getCoreContainer().getUpdateShardHandler().getUpdateExecutor().submit(runnable);
+ core.getCoreContainer().getUpdateShardHandler().getUpdateExecutor().submit(runnable);
rsp.add(RESPONSE_STATUS, "submitted");
} catch (RejectedExecutionException ree) {
// no problem, we're probably shutting down
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/CdcrUpdateLogSynchronizer.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/CdcrUpdateLogSynchronizer.java b/solr/core/src/java/org/apache/solr/handler/CdcrUpdateLogSynchronizer.java
index 48bfec0..7ce060c 100644
--- a/solr/core/src/java/org/apache/solr/handler/CdcrUpdateLogSynchronizer.java
+++ b/solr/core/src/java/org/apache/solr/handler/CdcrUpdateLogSynchronizer.java
@@ -112,7 +112,7 @@ class CdcrUpdateLogSynchronizer implements CdcrStateManager.CdcrStateObserver {
private class UpdateLogSynchronisation implements Runnable {
private String getLeaderUrl() {
- ZkController zkController = core.getCoreDescriptor().getCoreContainer().getZkController();
+ ZkController zkController = core.getCoreContainer().getZkController();
ClusterState cstate = zkController.getClusterState();
DocCollection docCollection = cstate.getCollection(collection);
ZkNodeProps leaderProps = docCollection.getLeader(shardId);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/GraphHandler.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/GraphHandler.java b/solr/core/src/java/org/apache/solr/handler/GraphHandler.java
index 6d41d83..c843e0a 100644
--- a/solr/core/src/java/org/apache/solr/handler/GraphHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/GraphHandler.java
@@ -84,12 +84,12 @@ public class GraphHandler extends RequestHandlerBase implements SolrCoreAware, P
String defaultCollection;
String defaultZkhost;
- CoreContainer coreContainer = core.getCoreDescriptor().getCoreContainer();
+ CoreContainer coreContainer = core.getCoreContainer();
this.coreName = core.getName();
if(coreContainer.isZooKeeperAware()) {
defaultCollection = core.getCoreDescriptor().getCollectionName();
- defaultZkhost = core.getCoreDescriptor().getCoreContainer().getZkController().getZkServerAddress();
+ defaultZkhost = core.getCoreContainer().getZkController().getZkServerAddress();
streamFactory.withCollectionZkHost(defaultCollection, defaultZkhost);
streamFactory.withDefaultZkHost(defaultZkhost);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java b/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java
index 6c3da83..89bd1e0 100644
--- a/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java
+++ b/solr/core/src/java/org/apache/solr/handler/IndexFetcher.java
@@ -206,7 +206,7 @@ public class IndexFetcher {
httpClientParams.set(HttpClientUtil.PROP_BASIC_AUTH_PASS, httpBasicAuthPassword);
httpClientParams.set(HttpClientUtil.PROP_ALLOW_COMPRESSION, useCompression);
- return HttpClientUtil.createClient(httpClientParams, core.getCoreDescriptor().getCoreContainer().getUpdateShardHandler().getConnectionManager());
+ return HttpClientUtil.createClient(httpClientParams, core.getCoreContainer().getUpdateShardHandler().getConnectionManager());
}
public IndexFetcher(final NamedList initArgs, final ReplicationHandler handler, final SolrCore sc) {
@@ -448,7 +448,7 @@ public class IndexFetcher {
// because of soft commits (which open a searcher on IW's data)
// so we need to close the existing searcher on the last commit
// and wait until we are able to clean up all unused lucene files
- if (solrCore.getCoreDescriptor().getCoreContainer().isZooKeeperAware()) {
+ if (solrCore.getCoreContainer().isZooKeeperAware()) {
solrCore.closeSearcher();
}
@@ -616,7 +616,7 @@ public class IndexFetcher {
}
}
- if (core.getCoreDescriptor().getCoreContainer().isZooKeeperAware()) {
+ if (core.getCoreContainer().isZooKeeperAware()) {
// we only track replication success in SolrCloud mode
core.getUpdateHandler().getSolrCoreState().setLastReplicateIndexSuccess(successfulInstall);
}
@@ -804,7 +804,7 @@ public class IndexFetcher {
IndexCommit commitPoint;
// must get the latest solrCore object because the one we have might be closed because of a reload
// todo stop keeping solrCore around
- SolrCore core = solrCore.getCoreDescriptor().getCoreContainer().getCore(solrCore.getName());
+ SolrCore core = solrCore.getCoreContainer().getCore(solrCore.getName());
try {
Future[] waitSearcher = new Future[1];
searcher = core.getSearcher(true, true, waitSearcher, true);
@@ -832,7 +832,7 @@ public class IndexFetcher {
final CountDownLatch latch = new CountDownLatch(1);
new Thread(() -> {
try {
- solrCore.getCoreDescriptor().getCoreContainer().reload(solrCore.getName());
+ solrCore.getCoreContainer().reload(solrCore.getName());
} catch (Exception e) {
LOG.error("Could not reload core ", e);
} finally {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java b/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
index ddf6b6a..34b32a2 100644
--- a/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/ReplicationHandler.java
@@ -422,7 +422,7 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
String location = params.get(CoreAdminParams.BACKUP_LOCATION);
String repoName = params.get(CoreAdminParams.BACKUP_REPOSITORY);
- CoreContainer cc = core.getCoreDescriptor().getCoreContainer();
+ CoreContainer cc = core.getCoreContainer();
BackupRepository repo = null;
if (repoName != null) {
repo = cc.newBackupRepository(Optional.of(repoName));
@@ -540,7 +540,7 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
String location = params.get(CoreAdminParams.BACKUP_LOCATION);
String repoName = params.get(CoreAdminParams.BACKUP_REPOSITORY);
- CoreContainer cc = core.getCoreDescriptor().getCoreContainer();
+ CoreContainer cc = core.getCoreContainer();
BackupRepository repo = null;
if (repoName != null) {
repo = cc.newBackupRepository(Optional.of(repoName));
@@ -678,7 +678,7 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
}
}
- if (confFileNameAlias.size() < 1 || core.getCoreDescriptor().getCoreContainer().isZooKeeperAware())
+ if (confFileNameAlias.size() < 1 || core.getCoreContainer().isZooKeeperAware())
return;
LOG.debug("Adding config files to list: " + includeConfFiles);
//if configuration files need to be included get their details
@@ -1173,7 +1173,7 @@ public class ReplicationHandler extends RequestHandlerBase implements SolrCoreAw
boolean enableMaster = isEnabled( master );
if (enableMaster || enableSlave) {
- if (core.getCoreDescriptor().getCoreContainer().getZkController() != null) {
+ if (core.getCoreContainer().getZkController() != null) {
LOG.warn("SolrCloud is enabled for core " + core.getName() + " but so is old-style replication. Make sure you" +
" intend this behavior, it usually indicates a mis-configuration. Master setting is " +
Boolean.toString(enableMaster) + " and slave setting is " + Boolean.toString(enableSlave));
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/SQLHandler.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/SQLHandler.java b/solr/core/src/java/org/apache/solr/handler/SQLHandler.java
index f307baa..c80d0d7 100644
--- a/solr/core/src/java/org/apache/solr/handler/SQLHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/SQLHandler.java
@@ -60,10 +60,10 @@ public class SQLHandler extends RequestHandlerBase implements SolrCoreAware, Per
private boolean isCloud = false;
public void inform(SolrCore core) {
- CoreContainer coreContainer = core.getCoreDescriptor().getCoreContainer();
+ CoreContainer coreContainer = core.getCoreContainer();
if(coreContainer.isZooKeeperAware()) {
- defaultZkhost = core.getCoreDescriptor().getCoreContainer().getZkController().getZkServerAddress();
+ defaultZkhost = core.getCoreContainer().getZkController().getZkServerAddress();
defaultWorkerCollection = core.getCoreDescriptor().getCollectionName();
isCloud = true;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
----------------------------------------------------------------------
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 2660cba..2409e4b 100644
--- a/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
@@ -436,7 +436,7 @@ public class SolrConfigHandler extends RequestHandlerBase implements SolrCoreAwa
log.debug("persisted to version : {} ", latestVersion);
waitForAllReplicasState(req.getCore().getCoreDescriptor().getCloudDescriptor().getCollectionName(),
- req.getCore().getCoreDescriptor().getCoreContainer().getZkController(), RequestParams.NAME, latestVersion, 30);
+ req.getCore().getCoreContainer().getZkController(), RequestParams.NAME, latestVersion, 30);
}
} else {
@@ -495,12 +495,12 @@ public class SolrConfigHandler extends RequestHandlerBase implements SolrCoreAwa
ConfigOverlay.RESOURCE_NAME, overlay.toByteArray(), true);
log.info("Executed config commands successfully and persisted to ZK {}", ops);
waitForAllReplicasState(req.getCore().getCoreDescriptor().getCloudDescriptor().getCollectionName(),
- req.getCore().getCoreDescriptor().getCoreContainer().getZkController(),
+ req.getCore().getCoreContainer().getZkController(),
ConfigOverlay.NAME,
latestVersion, 30);
} else {
SolrResourceLoader.persistConfLocally(loader, ConfigOverlay.RESOURCE_NAME, overlay.toByteArray());
- req.getCore().getCoreDescriptor().getCoreContainer().reload(req.getCore().getName());
+ req.getCore().getCoreContainer().reload(req.getCore().getName());
log.info("Executed config commands successfully and persited to File System {}", ops);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/StreamHandler.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/StreamHandler.java b/solr/core/src/java/org/apache/solr/handler/StreamHandler.java
index 8a18b89..c7aae20 100644
--- a/solr/core/src/java/org/apache/solr/handler/StreamHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/StreamHandler.java
@@ -133,12 +133,12 @@ public class StreamHandler extends RequestHandlerBase implements SolrCoreAware,
String defaultCollection;
String defaultZkhost;
- CoreContainer coreContainer = core.getCoreDescriptor().getCoreContainer();
+ CoreContainer coreContainer = core.getCoreContainer();
this.coreName = core.getName();
if(coreContainer.isZooKeeperAware()) {
defaultCollection = core.getCoreDescriptor().getCollectionName();
- defaultZkhost = core.getCoreDescriptor().getCoreContainer().getZkController().getZkServerAddress();
+ defaultZkhost = core.getCoreContainer().getZkController().getZkServerAddress();
streamFactory.withCollectionZkHost(defaultCollection, defaultZkhost);
streamFactory.withDefaultZkHost(defaultZkhost);
modelCache = new ModelCache(250,
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/admin/LoggingHandler.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/LoggingHandler.java b/solr/core/src/java/org/apache/solr/handler/admin/LoggingHandler.java
index b10aed1..122d2cb 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/LoggingHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/LoggingHandler.java
@@ -60,7 +60,7 @@ public class LoggingHandler extends RequestHandlerBase implements SolrCoreAware
@Override
public void inform(SolrCore core) {
if (watcher == null) {
- watcher = core.getCoreDescriptor().getCoreContainer().getLogging();
+ watcher = core.getCoreContainer().getLogging();
}
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/admin/PrepRecoveryOp.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/PrepRecoveryOp.java b/solr/core/src/java/org/apache/solr/handler/admin/PrepRecoveryOp.java
index d370bef..0c2c903 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/PrepRecoveryOp.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/PrepRecoveryOp.java
@@ -196,7 +196,7 @@ class PrepRecoveryOp implements CoreAdminHandler.CoreAdminOp {
.getNewestSearcher(false);
SolrIndexSearcher searcher = searchHolder.get();
try {
- log.debug(core.getCoreDescriptor().getCoreContainer()
+ log.debug(core.getCoreContainer()
.getZkController().getNodeName()
+ " to replicate "
+ searcher.search(new MatchAllDocsQuery(), 1).totalHits
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/admin/RequestSyncShardOp.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/RequestSyncShardOp.java b/solr/core/src/java/org/apache/solr/handler/admin/RequestSyncShardOp.java
index 584a7ca..dd4ae38 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/RequestSyncShardOp.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/RequestSyncShardOp.java
@@ -58,7 +58,7 @@ class RequestSyncShardOp implements CoreAdminHandler.CoreAdminOp {
try (SolrCore core = it.handler.coreContainer.getCore(cname)) {
if (core != null) {
- syncStrategy = new SyncStrategy(core.getCoreDescriptor().getCoreContainer());
+ syncStrategy = new SyncStrategy(core.getCoreContainer());
Map<String, Object> props = new HashMap<>();
props.put(ZkStateReader.BASE_URL_PROP, zkController.getBaseUrl());
@@ -73,7 +73,7 @@ class RequestSyncShardOp implements CoreAdminHandler.CoreAdminOp {
.getNewestSearcher(false);
SolrIndexSearcher searcher = searchHolder.get();
try {
- log.debug(core.getCoreDescriptor().getCoreContainer()
+ log.debug(core.getCoreContainer()
.getZkController().getNodeName()
+ " synched "
+ searcher.search(new MatchAllDocsQuery(), 1).totalHits);
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/admin/ShowFileRequestHandler.java
----------------------------------------------------------------------
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 805a690..02577f1 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
@@ -127,7 +127,7 @@ public class ShowFileRequestHandler extends RequestHandlerBase
public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp)
throws InterruptedException, KeeperException, IOException {
- CoreContainer coreContainer = req.getCore().getCoreDescriptor().getCoreContainer();
+ CoreContainer coreContainer = req.getCore().getCoreContainer();
if (coreContainer.isZooKeeperAware()) {
showFromZooKeeper(req, rsp, coreContainer);
} else {
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/admin/SolrInfoMBeanHandler.java
----------------------------------------------------------------------
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 297cdbf..c02cfe2 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
@@ -167,7 +167,7 @@ public class SolrInfoMBeanHandler extends RequestHandlerBase {
}
}
- for (SolrInfoMBean infoMBean : req.getCore().getCoreDescriptor().getCoreContainer().getResourceLoader().getInfoMBeans()) {
+ for (SolrInfoMBean infoMBean : req.getCore().getCoreContainer().getResourceLoader().getInfoMBeans()) {
String cat = infoMBean.getCategory().name();
addMBean(req,cat, cats,requestedKeys,infoMBean.getName(),infoMBean);
// add it also under back-compat name
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/admin/SystemInfoHandler.java
----------------------------------------------------------------------
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 fc1679f..8b74491 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
@@ -154,7 +154,7 @@ public class SystemInfoHandler extends RequestHandlerBase
private CoreContainer getCoreContainer(SolrQueryRequest req, SolrCore core) {
CoreContainer coreContainer;
if (core != null) {
- coreContainer = req.getCore().getCoreDescriptor().getCoreContainer();
+ coreContainer = req.getCore().getCoreContainer();
} else {
coreContainer = cc;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/component/DebugComponent.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/handler/component/DebugComponent.java b/solr/core/src/java/org/apache/solr/handler/component/DebugComponent.java
index be21733..6466d34 100644
--- a/solr/core/src/java/org/apache/solr/handler/component/DebugComponent.java
+++ b/solr/core/src/java/org/apache/solr/handler/component/DebugComponent.java
@@ -161,7 +161,7 @@ public class DebugComponent extends SearchComponent
@SuppressForbidden(reason = "Need currentTimeMillis, only used for naming")
private String generateRid(ResponseBuilder rb) {
- String hostName = rb.req.getCore().getCoreDescriptor().getCoreContainer().getHostName();
+ String hostName = rb.req.getCore().getCoreContainer().getHostName();
return hostName + "-" + rb.req.getCore().getName() + "-" + System.currentTimeMillis() + "-" + ridCounter.getAndIncrement();
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/acf30220/solr/core/src/java/org/apache/solr/handler/component/HttpShardHandler.java
----------------------------------------------------------------------
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 40e17a9..8c0a9cb 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
@@ -279,7 +279,7 @@ public class HttpShardHandler extends ShardHandler {
Map<String,Slice> slices = null;
CoreDescriptor coreDescriptor = req.getCore().getCoreDescriptor();
CloudDescriptor cloudDescriptor = coreDescriptor.getCloudDescriptor();
- ZkController zkController = coreDescriptor.getCoreContainer().getZkController();
+ ZkController zkController = req.getCore().getCoreContainer().getZkController();
final ReplicaListTransformer replicaListTransformer = httpShardHandlerFactory.getReplicaListTransformer(req);