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/11/05 15:17:26 UTC

svn commit: r1712780 - in /lucene/dev/branches/branch_5x: ./ solr/ solr/core/ solr/core/src/java/org/apache/solr/handler/ solr/core/src/test-files/solr/collection1/conf/ solr/core/src/test/org/apache/solr/core/ solr/core/src/test/org/apache/solr/handler/

Author: noble
Date: Thu Nov  5 14:17:26 2015
New Revision: 1712780

URL: http://svn.apache.org/viewvc?rev=1712780&view=rev
Log:
SOLR-8126: update-<component-name> does not work if the component is only present in solrconfig.xml

Modified:
    lucene/dev/branches/branch_5x/   (props changed)
    lucene/dev/branches/branch_5x/solr/   (props changed)
    lucene/dev/branches/branch_5x/solr/CHANGES.txt   (contents, props changed)
    lucene/dev/branches/branch_5x/solr/core/   (props changed)
    lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
    lucene/dev/branches/branch_5x/solr/core/src/test-files/solr/collection1/conf/solrconfig-tlog.xml
    lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestSolrConfigHandler.java
    lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerCloud.java

Modified: lucene/dev/branches/branch_5x/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/CHANGES.txt?rev=1712780&r1=1712779&r2=1712780&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_5x/solr/CHANGES.txt Thu Nov  5 14:17:26 2015
@@ -200,6 +200,9 @@ Bug Fixes
 
 * SOLR-8206: JSON Facet API limit:0 did not always work correctly.  (yonik)
 
+* SOLR-8126: update-<component-name> does not work if the component is only
+  present in solrconfig.xml (noble)
+
 * SOLR-8203: Stop processing updates more quickly on node shutdown.  When a node
   is shut down, streaming updates would continue, but new update requests would
   be aborted.  This can cause big update reorders that can cause replicas to

Modified: lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java?rev=1712780&r1=1712779&r2=1712780&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/java/org/apache/solr/handler/SolrConfigHandler.java Thu Nov  5 14:17:26 2015
@@ -444,7 +444,7 @@ public class SolrConfigHandler extends R
       op.getMap(PluginInfo.APPENDS, null);
       if (op.hasError()) return overlay;
       if (!verifyClass(op, clz, info.clazz)) return overlay;
-      if (overlay.getNamedPlugins(info.getCleanTag()).containsKey(name)) {
+      if (pluginExists(info, overlay, name)) {
         if (isCeate) {
           op.addError(formatString(" ''{0}'' already exists . Do an ''{1}'' , if you want to change it ", name, "update-" + info.getTagCleanLower()));
           return overlay;
@@ -461,6 +461,12 @@ public class SolrConfigHandler extends R
       }
     }
 
+    private boolean pluginExists(SolrConfig.SolrPluginInfo info, ConfigOverlay overlay, String name) {
+      List<PluginInfo> l = req.getCore().getSolrConfig().getPluginInfos(info.clazz.getName());
+      for (PluginInfo pluginInfo : l) if(name.equals( pluginInfo.name)) return true;
+      return overlay.getNamedPlugins(info.getCleanTag()).containsKey(name);
+    }
+
     private boolean verifyClass(CommandOperation op, String clz, Class expected) {
       if (clz == null) return true;
       if (!"true".equals(String.valueOf(op.getStr("runtimeLib", null)))) {

Modified: lucene/dev/branches/branch_5x/solr/core/src/test-files/solr/collection1/conf/solrconfig-tlog.xml
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test-files/solr/collection1/conf/solrconfig-tlog.xml?rev=1712780&r1=1712779&r2=1712780&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test-files/solr/collection1/conf/solrconfig-tlog.xml (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test-files/solr/collection1/conf/solrconfig-tlog.xml Thu Nov  5 14:17:26 2015
@@ -108,6 +108,13 @@
       <str name="replacement">x_x</str>
     </processor>
     <processor class="solr.RunUpdateProcessorFactory" />
-  </updateRequestProcessorChain>  
+  </updateRequestProcessorChain>
+
+  <requestHandler name="/dump" class="DumpRequestHandler" initParams="a">
+    <lst name="defaults">
+      <str name="a">A</str>
+      <str name="b">B</str>
+    </lst>
+  </requestHandler>
 
 </config>

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestSolrConfigHandler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestSolrConfigHandler.java?rev=1712780&r1=1712779&r2=1712780&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestSolrConfigHandler.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/core/TestSolrConfigHandler.java Thu Nov  5 14:17:26 2015
@@ -49,6 +49,7 @@ import org.restlet.ext.servlet.ServerSer
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import static org.apache.solr.BaseDistributedSearchTestCase.log;
 import static org.apache.solr.common.util.Utils.getObjectByPath;
 import static org.apache.solr.handler.TestBlobHandler.getAsString;
 
@@ -201,6 +202,22 @@ public class TestSolrConfigHandler exten
         "b",
         10);
 
+    payload = "{\n" +
+        "'update-requesthandler' : { 'name' : '/dump', " +
+        "'initParams': 'a'," +
+        "'class': 'org.apache.solr.handler.DumpRequestHandler' ," +
+        " 'defaults': {'a':'A','b':'B','c':'C'}}\n" +
+        "}";
+
+    runConfigCommand(writeHarness, "/config?wt=json", payload);
+    testForResponseElement(writeHarness,
+        testServerBaseUrl,
+        "/config/overlay?wt=json",
+        cloudSolrClient,
+        Arrays.asList("overlay", "requestHandler", "/dump", "defaults", "c" ),
+        "C",
+        10);
+
     testForResponseElement(writeHarness,
         testServerBaseUrl,
         "/x?wt=json&getdefaults=true&json.nl=map",
@@ -473,7 +490,7 @@ public class TestSolrConfigHandler exten
         10);
 
     payload = "{\n" +
-        "'create-requesthandler' : { 'name' : '/dump', 'class': 'org.apache.solr.handler.DumpRequestHandler' }\n" +
+        "'create-requesthandler' : { 'name' : '/d', 'class': 'org.apache.solr.handler.DumpRequestHandler' }\n" +
         "}";
 
     TestSolrConfigHandler.runConfigCommand(harness, "/config?wt=json", payload);
@@ -483,20 +500,20 @@ public class TestSolrConfigHandler exten
         null,
         "/config/overlay?wt=json",
         null,
-        Arrays.asList("overlay", "requestHandler", "/dump", "name"),
-        "/dump",
+        Arrays.asList("overlay", "requestHandler", "/d", "name"),
+        "/d",
         10);
 
     TestSolrConfigHandler.testForResponseElement(harness,
         null,
-        "/dump?wt=json&useParams=x",
+        "/d?wt=json&useParams=x",
         null,
         Arrays.asList("params", "a"),
         "A val",
         5);
     TestSolrConfigHandler.testForResponseElement(harness,
         null,
-        "/dump?wt=json&useParams=x&a=fomrequest",
+        "/d?wt=json&useParams=x&a=fomrequest",
         null,
         Arrays.asList("params", "a"),
         "fomrequest",

Modified: lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerCloud.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerCloud.java?rev=1712780&r1=1712779&r2=1712780&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerCloud.java (original)
+++ lucene/dev/branches/branch_5x/solr/core/src/test/org/apache/solr/handler/TestSolrConfigHandlerCloud.java Thu Nov  5 14:17:26 2015
@@ -146,7 +146,7 @@ public class TestSolrConfigHandlerCloud
     compareValues(result, "B val", asList("response", "params", "x", "b"));
 
     payload = "{\n" +
-        "'create-requesthandler' : { 'name' : '/dump', 'class': 'org.apache.solr.handler.DumpRequestHandler' }\n" +
+        "'update-requesthandler' : { 'name' : '/dump', 'class': 'org.apache.solr.handler.DumpRequestHandler' }\n" +
         "}";
 
     TestSolrConfigHandler.runConfigCommand(writeHarness, "/config?wt=json", payload);