You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ro...@apache.org on 2014/06/10 21:48:12 UTC

svn commit: r1601758 - in /lucene/dev/trunk/solr: CHANGES.txt core/src/java/org/apache/solr/core/ConfigSetService.java core/src/test/org/apache/solr/core/TestConfigSets.java

Author: romseygeek
Date: Tue Jun 10 19:48:11 2014
New Revision: 1601758

URL: http://svn.apache.org/r1601758
Log:
SOLR-6158: Fix configSetBaseDir path resolution

Modified:
    lucene/dev/trunk/solr/CHANGES.txt
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/ConfigSetService.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestConfigSets.java

Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1601758&r1=1601757&r2=1601758&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Tue Jun 10 19:48:11 2014
@@ -163,6 +163,9 @@ Bug Fixes
 * SOLR-6146: Incorrect configuration such as wrong chroot in zk server address can
   cause CloudSolrServer to leak resources. (Jessica Cheng, Varun Thacker, shalin)
 
+* SOLR-6158: Relative configSetBase directories were resolved relative to the 
+  container CWD, rather than solr.home. (Simon Endele, Alan Woodward)
+
 Other Changes
 ---------------------
 

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/ConfigSetService.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/ConfigSetService.java?rev=1601758&r1=1601757&r2=1601758&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/ConfigSetService.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/ConfigSetService.java Tue Jun 10 19:48:11 2014
@@ -113,7 +113,7 @@ public abstract class ConfigSetService {
    */
   public static class Default extends ConfigSetService {
 
-    private final String configSetBase;
+    private final File configSetBase;
 
     /**
      * Create a new ConfigSetService.Default
@@ -122,7 +122,19 @@ public abstract class ConfigSetService {
      */
     public Default(SolrResourceLoader loader, String configSetBase) {
       super(loader);
-      this.configSetBase = configSetBase;
+      this.configSetBase = resolveBaseDirectory(loader, configSetBase);
+    }
+
+    private File resolveBaseDirectory(SolrResourceLoader loader, String configSetBase) {
+      File csBase = new File(configSetBase);
+      if (!csBase.isAbsolute())
+        csBase = new File(loader.getInstanceDir(), configSetBase);
+      return csBase;
+    }
+
+    // for testing
+    File getConfigSetBase() {
+      return this.configSetBase;
     }
 
     @Override

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestConfigSets.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestConfigSets.java?rev=1601758&r1=1601757&r2=1601758&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestConfigSets.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestConfigSets.java Tue Jun 10 19:48:11 2014
@@ -17,14 +17,7 @@ package org.apache.solr.core;
  * limitations under the License.
  */
 
-import static org.hamcrest.CoreMatchers.notNullValue;
-import static org.hamcrest.CoreMatchers.nullValue;
-import static org.hamcrest.core.Is.is;
-import static org.junit.internal.matchers.StringContains.containsString;
-
-import java.io.File;
-import java.io.IOException;
-
+import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
 import org.apache.commons.io.FileUtils;
 import org.apache.solr.SolrTestCaseJ4;
 import org.junit.Rule;
@@ -32,7 +25,13 @@ import org.junit.Test;
 import org.junit.rules.RuleChain;
 import org.junit.rules.TestRule;
 
-import com.carrotsearch.randomizedtesting.rules.SystemPropertiesRestoreRule;
+import java.io.File;
+import java.io.IOException;
+
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.CoreMatchers.nullValue;
+import static org.hamcrest.core.Is.is;
+import static org.junit.internal.matchers.StringContains.containsString;
 
 public class TestConfigSets extends SolrTestCaseJ4 {
 
@@ -54,6 +53,16 @@ public class TestConfigSets extends Solr
   }
 
   @Test
+  public void testDefaultConfigSetBasePathResolution() throws IOException {
+    try (SolrResourceLoader loader = new SolrResourceLoader("/path/to/solr/home")) {
+      ConfigSetService.Default relativeCSS = new ConfigSetService.Default(loader, "configsets");
+      assertThat(relativeCSS.getConfigSetBase().getAbsolutePath(), is("/path/to/solr/home/configsets"));
+      ConfigSetService.Default absoluteCSS = new ConfigSetService.Default(loader, "/path/to/configsets");
+      assertThat(absoluteCSS.getConfigSetBase().getAbsolutePath(), is("/path/to/configsets"));
+    }
+  }
+
+  @Test
   public void testConfigSetServiceFindsConfigSets() {
     CoreContainer container = null;
     SolrCore core1 = null;