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