You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by us...@apache.org on 2013/07/06 00:45:28 UTC

svn commit: r1500156 - in /lucene/dev/trunk/solr: CHANGES.txt core/src/java/org/apache/solr/cloud/ZkCLI.java core/src/java/org/apache/solr/core/ConfigSolr.java core/src/java/org/apache/solr/core/CoreContainer.java

Author: uschindler
Date: Fri Jul  5 22:45:28 2013
New Revision: 1500156

URL: http://svn.apache.org/r1500156
Log:
SOLR-5002: Don't create multiple SolrResourceLoaders for same Solr home, wasting resources and slowing down startup. This fixes the problem where the loader was not correctly closed, making tests fail on Windows.

Modified:
    lucene/dev/trunk/solr/CHANGES.txt
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/ConfigSolr.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/CoreContainer.java

Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1500156&r1=1500155&r2=1500156&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Fri Jul  5 22:45:28 2013
@@ -253,6 +253,10 @@ Bug Fixes
 * SOLR-5000: ManagedIndexSchema doesn't persist uniqueKey tag after calling addFields
   method. (Jun Ohtani, Steve Rowe)
 
+* SOLR-5002: Don't create multiple SolrResourceLoaders for same Solr home, wasting 
+  resources and slowing down startup. This fixes the problem where the loader was
+  not correctly closed, making tests fail on Windows.  (Steve Rowe, Uwe Schindler)
+
 Optimizations
 ----------------------
 

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java?rev=1500156&r1=1500155&r2=1500156&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/cloud/ZkCLI.java Fri Jul  5 22:45:28 2013
@@ -176,7 +176,7 @@ public class ZkCLI {
           SolrResourceLoader loader = new SolrResourceLoader(solrHome);
           solrHome = loader.getInstanceDir();
 
-          ConfigSolr cfg = ConfigSolr.fromSolrHome(solrHome);
+          ConfigSolr cfg = ConfigSolr.fromSolrHome(loader, solrHome);
 
           if(!ZkController.checkChrootPath(zkServerAddress, true)) {
             System.out.println("A chroot was specified in zkHost but the znode doesn't exist. ");

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/ConfigSolr.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/ConfigSolr.java?rev=1500156&r1=1500155&r2=1500156&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/ConfigSolr.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/ConfigSolr.java Fri Jul  5 22:45:28 2013
@@ -46,11 +46,9 @@ public abstract class ConfigSolr {
   
   public final static String SOLR_XML_FILE = "solr.xml";
 
-  public static ConfigSolr fromFile(File configFile) {
+  public static ConfigSolr fromFile(SolrResourceLoader loader, File configFile) {
     log.info("Loading container configuration from {}", configFile.getAbsolutePath());
 
-    String solrHome = configFile.getParent();
-    SolrResourceLoader loader = new SolrResourceLoader(solrHome);
     InputStream inputStream = null;
 
     try {
@@ -87,8 +85,8 @@ public abstract class ConfigSolr {
     }
   }
 
-  public static ConfigSolr fromSolrHome(String solrHome) {
-    return fromFile(new File(solrHome, SOLR_XML_FILE));
+  public static ConfigSolr fromSolrHome(SolrResourceLoader loader, String solrHome) {
+    return fromFile(loader, new File(solrHome, SOLR_XML_FILE));
   }
 
   public static ConfigSolr fromConfig(Config config) {

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/CoreContainer.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/CoreContainer.java?rev=1500156&r1=1500155&r2=1500156&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/CoreContainer.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/CoreContainer.java Fri Jul  5 22:45:28 2013
@@ -129,7 +129,7 @@ public class CoreContainer
    * @see #load()
    */
   public CoreContainer() {
-    this(SolrResourceLoader.locateSolrHome());
+    this(new SolrResourceLoader(SolrResourceLoader.locateSolrHome()));
   }
 
   /**
@@ -139,7 +139,7 @@ public class CoreContainer
    * @see #load()
    */
   public CoreContainer(SolrResourceLoader loader) {
-    this(loader, ConfigSolr.fromSolrHome(loader.getInstanceDir()));
+    this(loader, ConfigSolr.fromSolrHome(loader, loader.getInstanceDir()));
   }
 
   /**
@@ -149,7 +149,7 @@ public class CoreContainer
    * @see #load()
    */
   public CoreContainer(String solrHome) {
-    this(new SolrResourceLoader(solrHome), ConfigSolr.fromSolrHome(solrHome));
+    this(new SolrResourceLoader(solrHome));
   }
 
   /**
@@ -172,7 +172,8 @@ public class CoreContainer
    * @return a loaded CoreContainer
    */
   public static CoreContainer createAndLoad(String solrHome, File configFile) {
-    CoreContainer cc = new CoreContainer(new SolrResourceLoader(solrHome), ConfigSolr.fromFile(configFile));
+    SolrResourceLoader loader = new SolrResourceLoader(solrHome);
+    CoreContainer cc = new CoreContainer(loader, ConfigSolr.fromFile(loader, configFile));
     cc.load();
     return cc;
   }