Author: yonik
Date: Wed Aug 27 07:20:40 2008
New Revision: 689489

URL: http://svn.apache.org/viewvc?rev=689489&view=rev
Log:
SOLR-722: CoreContainer.reload should make core aliases point to reloaded core

Modified:
    
lucene/solr/trunk/client/java/solrj/test/org/apache/solr/client/solrj/MultiCoreExampleTestBase.java
    lucene/solr/trunk/src/java/org/apache/solr/core/CoreContainer.java

Modified: 
lucene/solr/trunk/client/java/solrj/test/org/apache/solr/client/solrj/MultiCoreExampleTestBase.java
URL: 
http://svn.apache.org/viewvc/lucene/solr/trunk/client/java/solrj/test/org/apache/solr/client/solrj/MultiCoreExampleTestBase.java?rev=689489&r1=689488&r2=689489&view=diff
==============================================================================
--- 
lucene/solr/trunk/client/java/solrj/test/org/apache/solr/client/solrj/MultiCoreExampleTestBase.java
 (original)
+++ 
lucene/solr/trunk/client/java/solrj/test/org/apache/solr/client/solrj/MultiCoreExampleTestBase.java
 Wed Aug 27 07:20:40 2008
@@ -137,6 +137,20 @@
     assertEquals( 1, getSolrCore1().query( new SolrQuery( "id:BBB" ) 
).getResults().size() );
     assertEquals( 1, getSolrCore("corefoo").query( new SolrQuery( "id:BBB" ) 
).getResults().size() );
 
+    // test that reload affects aliases
+    CoreAdminRequest.reloadCore("core1", coreadmin);
+
+    // this is only an effective test for embedded, where we have
+    // direct access to the core container.
+    SolrCore c1 = cores.getCore("core1");
+    SolrCore c2 = cores.getCore("corefoo");
+    assertTrue(c1 == c2);
+    if (c1 != null) c1.close();
+    if (c2 != null) c2.close();
+
+    // retest core query
+    assertEquals( 1, getSolrCore1().query( new SolrQuery( "id:BBB" ) 
).getResults().size() );
+
     // test close
     CoreAdminRequest.unloadCore("corefoo",coreadmin);
     try {

Modified: lucene/solr/trunk/src/java/org/apache/solr/core/CoreContainer.java
URL: 
http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/core/CoreContainer.java?rev=689489&r1=689488&r2=689489&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/core/CoreContainer.java 
(original)
+++ lucene/solr/trunk/src/java/org/apache/solr/core/CoreContainer.java Wed Aug 
27 07:20:40 2008
@@ -381,7 +381,17 @@
     if (core == null)
       throw new SolrException( SolrException.ErrorCode.BAD_REQUEST, "No such 
core: " + name );
 
-    register(name, create(core.getCoreDescriptor()), false);
+    SolrCore newCore = create(core.getCoreDescriptor());
+
+    // point all aliases to the reloaded core
+    for (String alias : getCoreNames(core)) {
+      if (!name.equals(alias)) {
+        newCore.open();
+        register(alias, newCore, false);
+      }
+    }
+
+    register(name, newCore, false);
   }
     
   


Reply via email to