You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by no...@apache.org on 2015/01/06 16:11:13 UTC

svn commit: r1649821 - in /lucene/dev/trunk/solr/core/src: java/org/apache/solr/core/ java/org/apache/solr/handler/ test/org/apache/solr/core/

Author: noble
Date: Tue Jan  6 15:11:12 2015
New Revision: 1649821

URL: http://svn.apache.org/r1649821
Log:
SOLR-6801 addressing test failures, SOLR-6607 supporting all initArgs for requesthandlers

Modified:
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/ConfigOverlay.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/JarRepository.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/PluginInfo.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/BlobHandler.java
    lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/DumpRequestHandler.java
    lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrConfigHandler.java

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/ConfigOverlay.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/ConfigOverlay.java?rev=1649821&r1=1649820&r2=1649821&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/ConfigOverlay.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/ConfigOverlay.java Tue Jan  6 15:11:12 2015
@@ -75,6 +75,7 @@ public class ConfigOverlay implements Ma
     for (int i = 0; i < hierarchy.size(); i++) {
       String s = hierarchy.get(i);
       if(i < hierarchy.size()-1){
+        if (!(obj.get(s) instanceof Map)) return null;
         obj = (Map) obj.get(s);
         if(obj == null) return null;
       } else {

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/JarRepository.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/JarRepository.java?rev=1649821&r1=1649820&r2=1649821&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/JarRepository.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/JarRepository.java Tue Jan  6 15:11:12 2015
@@ -23,6 +23,8 @@ import static org.apache.solr.common.clo
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
@@ -71,8 +73,10 @@ public class JarRepository {
         ClusterState cs = this.coreContainer.getZkController().getZkStateReader().getClusterState();
         DocCollection coll = cs.getCollectionOrNull(CollectionsHandler.SYSTEM_COLL);
         if (coll == null) throw new SolrException(SERVICE_UNAVAILABLE, ".system collection not available");
-        Slice slice = coll.getActiveSlices().iterator().next();
-        if (slice == null) throw new SolrException(SERVICE_UNAVAILABLE, ".no active slices for .system collection");
+        ArrayList<Slice> slices = new ArrayList<>(coll.getActiveSlices());
+        if (slices.isEmpty()) throw new SolrException(SERVICE_UNAVAILABLE, ".no active slices for .system collection");
+        Collections.shuffle(slices); //do load balancing
+        Slice slice = slices.get(0) ;
         Replica replica = slice.getReplicas().iterator().next();
         if (replica == null) throw new SolrException(SERVICE_UNAVAILABLE, ".no active replica available for .system collection");
         String url = replica.getStr(BASE_URL_PROP) + "/.system/blob/" + key + "?wt=filestream";

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/PluginInfo.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/PluginInfo.java?rev=1649821&r1=1649820&r2=1649821&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/PluginInfo.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/PluginInfo.java Tue Jan  6 15:11:12 2015
@@ -63,12 +63,15 @@ public class PluginInfo implements MapSe
 
   public PluginInfo(String type, Map<String,Object> map) {
     LinkedHashMap m = new LinkedHashMap<>(map);
-    NamedList nl = new NamedList();
-    for (String s : asList(DEFAULTS, APPENDS, INVARIANTS)) if (m.get(s) != null) nl.add(s, map.remove(s));
+    initArgs = new NamedList();
+    for (Map.Entry<String, Object> entry : map.entrySet()) {
+      Object value = entry.getValue();
+      if (value instanceof Map) value = new NamedList((Map) value);
+      initArgs.add(entry.getKey(), value);
+    }
     this.type = type;
     this.name = (String) m.get(NAME);
     this.className = (String) m.get(CLASS_NAME);
-    this.initArgs = nl;
     attributes = unmodifiableMap(m);
     this.children =  Collections.<PluginInfo>emptyList();
     isFromSolrConfig = true;

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/BlobHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/BlobHandler.java?rev=1649821&r1=1649820&r2=1649821&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/BlobHandler.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/BlobHandler.java Tue Jan  6 15:11:12 2015
@@ -188,7 +188,7 @@ public class BlobHandler extends Request
         req.forward(null,
             new MapSolrParams((Map) makeMap(
                 "q", MessageFormat.format(q,blobName,version),
-                "fl", "id,size,version,timestamp,blobName",
+                "fl", "id,size,version,timestamp,blobName,md5",
                 "sort", "version desc"))
             ,rsp);
       }

Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/DumpRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/DumpRequestHandler.java?rev=1649821&r1=1649820&r2=1649821&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/DumpRequestHandler.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/DumpRequestHandler.java Tue Jan  6 15:11:12 2015
@@ -54,6 +54,12 @@ public class DumpRequestHandler extends
       }
     }
 
+    if(Boolean.TRUE.equals( req.getParams().getBool("getdefaults"))){
+      NamedList def = (NamedList) initArgs.get(PluginInfo.DEFAULTS);
+      rsp.add("getdefaults", def);
+    }
+
+
     if(Boolean.TRUE.equals( req.getParams().getBool("initArgs"))) rsp.add("initArgs", initArgs);
         
     // Write the streams...

Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrConfigHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrConfigHandler.java?rev=1649821&r1=1649820&r2=1649821&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrConfigHandler.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/core/TestSolrConfigHandler.java Tue Jan  6 15:11:12 2015
@@ -172,7 +172,7 @@ public class TestSolrConfigHandler exten
         10);
 
     payload = "{\n" +
-        "'update-requesthandler' : { 'name' : '/x', 'class': 'org.apache.solr.handler.DumpRequestHandler' , 'startup' : 'lazy' , 'a':'b'}\n" +
+        "'update-requesthandler' : { 'name' : '/x', 'class': 'org.apache.solr.handler.DumpRequestHandler' , 'startup' : 'lazy' , 'a':'b' , 'defaults': {'def_a':'def A val'}}\n" +
         "}";
     runConfigCommand(writeHarness,"/config?wt=json", payload);
 
@@ -184,6 +184,14 @@ public class TestSolrConfigHandler exten
         "b",
         10);
 
+    testForResponseElement(writeHarness,
+        testServerBaseUrl,
+        "/x?wt=json&getdefaults=true&json.nl=map",
+        cloudSolrServer,
+        Arrays.asList("getdefaults", "def_a"),
+        "def A val",
+        10);
+
     payload = "{\n" +
         "'delete-requesthandler' : '/x'" +
         "}";