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);
}