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