You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ma...@apache.org on 2013/11/23 18:51:01 UTC

svn commit: r1544845 - in /lucene/dev/branches/branch_4x: ./ solr/ solr/CHANGES.txt solr/core/ solr/core/src/java/org/apache/solr/core/CorePropertiesLocator.java solr/core/src/test/org/apache/solr/core/TestCoreContainer.java

Author: markrmiller
Date: Sat Nov 23 17:51:01 2013
New Revision: 1544845

URL: http://svn.apache.org/r1544845
Log:
SOLR-5494: CoreContainer#remove throws NPE rather than returning null when a SolrCore does not exist in core discovery mode.

Modified:
    lucene/dev/branches/branch_4x/   (props changed)
    lucene/dev/branches/branch_4x/solr/   (props changed)
    lucene/dev/branches/branch_4x/solr/CHANGES.txt   (contents, props changed)
    lucene/dev/branches/branch_4x/solr/core/   (props changed)
    lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CorePropertiesLocator.java
    lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java

Modified: lucene/dev/branches/branch_4x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/CHANGES.txt?rev=1544845&r1=1544844&r2=1544845&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_4x/solr/CHANGES.txt Sat Nov 23 17:51:01 2013
@@ -71,6 +71,9 @@ New Features
   This is intended to eventually replace the Suggester support through the
   SpellCheckComponent. (Areek Zillur, Varun Thacker via shalin)
 
+* SOLR-5494: CoreContainer#remove throws NPE rather than returning null when
+  a SolrCore does not exist in core discovery mode. (Mark Miller)
+
 Bug Fixes
 ----------------------
 

Modified: lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CorePropertiesLocator.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CorePropertiesLocator.java?rev=1544845&r1=1544844&r2=1544845&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CorePropertiesLocator.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/java/org/apache/solr/core/CorePropertiesLocator.java Sat Nov 23 17:51:01 2013
@@ -91,7 +91,11 @@ public class CorePropertiesLocator imple
 
   @Override
   public void delete(CoreContainer cc, CoreDescriptor... coreDescriptors) {
+    if (coreDescriptors == null) {
+      return;
+    }
     for (CoreDescriptor cd : coreDescriptors) {
+      if (cd == null) continue;
       File instanceDir = new File(cd.getInstanceDir());
       File propertiesFile = new File(instanceDir, PROPERTIES_FILENAME);
       propertiesFile.renameTo(new File(instanceDir, PROPERTIES_FILENAME + ".unloaded"));

Modified: lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java?rev=1544845&r1=1544844&r2=1544845&view=diff
==============================================================================
--- lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java (original)
+++ lucene/dev/branches/branch_4x/solr/core/src/test/org/apache/solr/core/TestCoreContainer.java Sat Nov 23 17:51:01 2013
@@ -151,7 +151,10 @@ public class TestCoreContainer extends S
     //create solrHome
     File solrHomeDirectory = new File(TEMP_DIR, this.getClass().getName()
         + "_noCores");
-    SetUpHome(solrHomeDirectory, EMPTY_SOLR_XML);
+    
+    boolean oldSolrXml = random().nextBoolean();
+    
+    SetUpHome(solrHomeDirectory, oldSolrXml ? EMPTY_SOLR_XML : EMPTY_SOLR_XML2);
     CoreContainer cores = new CoreContainer(solrHomeDirectory.getAbsolutePath());
     cores.load();
     try {
@@ -168,14 +171,19 @@ public class TestCoreContainer extends S
 
       assertEquals("There core registered", 1, cores.getCores().size());
 
-
-      assertXmlFile(new File(solrHomeDirectory, "solr.xml"),
-          "/solr/cores[@transientCacheSize='32']");
+      if (oldSolrXml) {
+        assertXmlFile(new File(solrHomeDirectory, "solr.xml"),
+            "/solr/cores[@transientCacheSize='32']");
+      }
 
       newCore.close();
       cores.remove("core1");
       //assert cero cores
       assertEquals("There should not be cores", 0, cores.getCores().size());
+      
+      // try and remove a core that does not exist
+      SolrCore ret = cores.remove("non_existent_core");
+      assertNull(ret);
     } finally {
       cores.shutdown();
       FileUtils.deleteDirectory(solrHomeDirectory);
@@ -278,4 +286,8 @@ public class TestCoreContainer extends S
       "  <cores adminPath=\"/admin/cores\" transientCacheSize=\"32\" >\n" +
       "  </cores>\n" +
       "</solr>";
+  
+  private static final String EMPTY_SOLR_XML2 ="<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" +
+      "<solr>\n" +
+      "</solr>";
 }