You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by sh...@apache.org on 2009/06/04 11:08:02 UTC
svn commit: r781688 - in /lucene/solr/trunk/src:
common/org/apache/solr/common/params/CoreAdminParams.java
java/org/apache/solr/handler/admin/CoreAdminHandler.java
solrj/org/apache/solr/client/solrj/request/CoreAdminRequest.java
Author: shalin
Date: Thu Jun 4 09:08:01 2009
New Revision: 781688
URL: http://svn.apache.org/viewvc?rev=781688&view=rev
Log:
SOLR-1051 -- Fix NPE and change comma separated indexDirs parameter to multiple indexDir parameters
Modified:
lucene/solr/trunk/src/common/org/apache/solr/common/params/CoreAdminParams.java
lucene/solr/trunk/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java
lucene/solr/trunk/src/solrj/org/apache/solr/client/solrj/request/CoreAdminRequest.java
Modified: lucene/solr/trunk/src/common/org/apache/solr/common/params/CoreAdminParams.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/common/org/apache/solr/common/params/CoreAdminParams.java?rev=781688&r1=781687&r2=781688&view=diff
==============================================================================
--- lucene/solr/trunk/src/common/org/apache/solr/common/params/CoreAdminParams.java (original)
+++ lucene/solr/trunk/src/common/org/apache/solr/common/params/CoreAdminParams.java Thu Jun 4 09:08:01 2009
@@ -55,7 +55,7 @@
/** If you merge indexes, what are the index directories.
* The directories are separated by ",". */
- public final static String INDEX_DIRS = "indexDirs";
+ public final static String INDEX_DIR = "indexDir";
public enum CoreAdminAction {
STATUS,
Modified: lucene/solr/trunk/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java?rev=781688&r1=781687&r2=781688&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/handler/admin/CoreAdminHandler.java Thu Jun 4 09:08:01 2009
@@ -31,6 +31,7 @@
import org.apache.solr.handler.RequestHandlerBase;
import org.apache.solr.request.SolrQueryRequest;
import org.apache.solr.request.SolrQueryResponse;
+import org.apache.solr.request.LocalSolrQueryRequest;
import org.apache.solr.search.SolrIndexSearcher;
import org.apache.solr.util.RefCounted;
import org.apache.solr.update.MergeIndexesCommand;
@@ -177,8 +178,7 @@
try {
doPersist = coreContainer.isPersistent();
- String p = required.get(CoreAdminParams.INDEX_DIRS);
- String[] dirNames = p.split(",");
+ String[] dirNames = required.getParams(CoreAdminParams.INDEX_DIR);
DirectoryFactory dirFactory = core.getDirectoryFactory();
Directory[] dirs = new Directory[dirNames.length];
@@ -188,8 +188,9 @@
UpdateRequestProcessorChain processorChain =
core.getUpdateProcessingChain(params.get(UpdateParams.UPDATE_PROCESSOR));
+ SolrQueryRequest wrappedReq = new LocalSolrQueryRequest(core, req.getParams());
UpdateRequestProcessor processor =
- processorChain.createProcessor(req, rsp);
+ processorChain.createProcessor(wrappedReq, rsp);
processor.processMergeIndexes(new MergeIndexesCommand(dirs));
} finally {
core.close();
Modified: lucene/solr/trunk/src/solrj/org/apache/solr/client/solrj/request/CoreAdminRequest.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/solrj/org/apache/solr/client/solrj/request/CoreAdminRequest.java?rev=781688&r1=781687&r2=781688&view=diff
==============================================================================
--- lucene/solr/trunk/src/solrj/org/apache/solr/client/solrj/request/CoreAdminRequest.java (original)
+++ lucene/solr/trunk/src/solrj/org/apache/solr/client/solrj/request/CoreAdminRequest.java Thu Jun 4 09:08:01 2009
@@ -19,6 +19,8 @@
import java.io.IOException;
import java.util.Collection;
+import java.util.List;
+import java.util.Arrays;
import org.apache.solr.client.solrj.SolrRequest;
import org.apache.solr.client.solrj.SolrServer;
@@ -110,17 +112,17 @@
}
public static class MergeIndexes extends CoreAdminRequest {
- protected String indexDirs;
+ protected List<String> indexDirs;
public MergeIndexes() {
action = CoreAdminAction.MERGEINDEXES;
}
- public void setIndexDirs(String indexDirs) {
+ public void setIndexDirs(List<String> indexDirs) {
this.indexDirs = indexDirs;
}
- public String getIndexDirs() {
+ public List<String> getIndexDirs() {
return indexDirs;
}
@@ -132,7 +134,11 @@
ModifiableSolrParams params = new ModifiableSolrParams();
params.set(CoreAdminParams.ACTION, action.toString());
params.set(CoreAdminParams.CORE, core);
- params.set(CoreAdminParams.INDEX_DIRS, indexDirs);
+ if (indexDirs != null) {
+ for (String indexDir : indexDirs) {
+ params.set(CoreAdminParams.INDEX_DIR, indexDir);
+ }
+ }
return params;
}
}
@@ -281,17 +287,7 @@
IOException {
CoreAdminRequest.MergeIndexes req = new CoreAdminRequest.MergeIndexes();
req.setCoreName(name);
- String p = null;
- if (indexDirs.length == 1) {
- p = indexDirs[0];
- } else if (indexDirs.length > 1) {
- StringBuilder s = new StringBuilder(indexDirs[0]);
- for (int i = 1; i < indexDirs.length; i++) {
- s.append(",").append(indexDirs[i]);
- }
- p = s.toString();
- }
- req.setIndexDirs(p);
+ req.setIndexDirs(Arrays.asList(indexDirs));
return req.process(server);
}
}