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/12/27 06:16:57 UTC
lucene-solr:master: SOLR-11783: Rename core in solr standalone mode
is not persisted
Repository: lucene-solr
Updated Branches:
refs/heads/master e3f90385b -> 137675ace
SOLR-11783: Rename core in solr standalone mode is not persisted
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/137675ac
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/137675ac
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/137675ac
Branch: refs/heads/master
Commit: 137675ace7fe0ca3264d18fd11e9e61cb535515a
Parents: e3f9038
Author: Erick Erickson <er...@apache.org>
Authored: Tue Dec 26 22:16:52 2017 -0800
Committer: Erick Erickson <er...@apache.org>
Committed: Tue Dec 26 22:16:52 2017 -0800
----------------------------------------------------------------------
solr/CHANGES.txt | 5 +++
.../apache/solr/core/CorePropertiesLocator.java | 6 ++++
.../handler/admin/CoreAdminHandlerTest.java | 35 ++++++++++++++++++++
3 files changed, 46 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/137675ac/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 1d4ac2a..68003cb 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -63,6 +63,11 @@ New Features
* SOLR-11201: Implement autoscaling trigger for arbitrary metrics that creates events when
a given metric breaches a threshold (shalin)
+Bug Fixes
+----------------------
+
+* SOLR-11783: Rename core in solr standalone mode is not persisted (Erick Erickson)
+
Optimizations
----------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/137675ac/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 99c101b..70acd84 100644
--- a/solr/core/src/java/org/apache/solr/core/CorePropertiesLocator.java
+++ b/solr/core/src/java/org/apache/solr/core/CorePropertiesLocator.java
@@ -116,6 +116,12 @@ public class CorePropertiesLocator implements CoresLocator {
@Override
public void rename(CoreContainer cc, CoreDescriptor oldCD, CoreDescriptor newCD) {
+ String oldName = newCD.getPersistableStandardProperties().getProperty(CoreDescriptor.CORE_NAME);
+ String newName = newCD.coreProperties.getProperty(CoreDescriptor.CORE_NAME);
+ if (oldName == null ||
+ (newName != null && oldName.equals(newName) == false)) {
+ newCD.getPersistableStandardProperties().put(CoreDescriptor.CORE_NAME, newName);
+ }
persist(cc, newCD);
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/137675ac/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java b/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java
index b9a282a..e9a0e31 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/CoreAdminHandlerTest.java
@@ -17,11 +17,14 @@
package org.apache.solr.handler.admin;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Map;
+import java.util.Properties;
import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
import org.apache.commons.io.FileUtils;
@@ -256,6 +259,13 @@ public class CoreAdminHandlerTest extends SolrTestCaseJ4 {
copySolrHomeToTemp(solrHomeDirectory, "corex");
File corex = new File(solrHomeDirectory, "corex");
FileUtils.write(new File(corex, "core.properties"), "", StandardCharsets.UTF_8);
+
+ copySolrHomeToTemp(solrHomeDirectory, "corerename");
+
+ File coreRename = new File(solrHomeDirectory, "corerename");
+ File renamePropFile = new File(coreRename, "core.properties");
+ FileUtils.write(renamePropFile, "", StandardCharsets.UTF_8);
+
JettySolrRunner runner = new JettySolrRunner(solrHomeDirectory.getAbsolutePath(), buildJettyConfig("/solr"));
runner.start();
@@ -273,11 +283,36 @@ public class CoreAdminHandlerTest extends SolrTestCaseJ4 {
req.process(client);
}
+ // Make sure a renamed core
+ // 1> has the property persisted (SOLR-11783)
+ // 2> is deleted after rename properly.
+
+ try (HttpSolrClient client = getHttpSolrClient(runner.getBaseUrl().toString(), DEFAULT_CONNECTION_TIMEOUT, DEFAULT_CONNECTION_TIMEOUT)) {
+ CoreAdminRequest.renameCore("corerename", "brand_new_core_name", client);
+ Properties props = new Properties();
+ try (InputStreamReader is = new InputStreamReader(new FileInputStream(renamePropFile), StandardCharsets.UTF_8)) {
+ props.load(is);
+ }
+ assertEquals("Name should have been persisted!", "brand_new_core_name", props.getProperty("name"));
+ }
+
+
+ try (HttpSolrClient client = getHttpSolrClient(runner.getBaseUrl().toString(), DEFAULT_CONNECTION_TIMEOUT, DEFAULT_CONNECTION_TIMEOUT)) {
+ CoreAdminRequest.Unload req = new CoreAdminRequest.Unload(false);
+ req.setDeleteInstanceDir(true);
+ req.setCoreName("brand_new_core_name");
+ req.process(client);
+ }
+
+
runner.stop();
assertFalse("Instance directory exists after core unload with deleteInstanceDir=true : " + corex,
corex.exists());
+ assertFalse("Instance directory exists after core unload with deleteInstanceDir=true : " + coreRename,
+ coreRename.exists());
+
}
@Test