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/05/15 07:54:26 UTC
svn commit: r1679495 - in /lucene/dev/branches/branch_5x: ./ solr/
solr/CHANGES.txt solr/solrj/
solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java
solr/solrj/src/test/org/apache/solr/common/params/SolrParamTest.java
Author: noble
Date: Fri May 15 05:54:25 2015
New Revision: 1679495
URL: http://svn.apache.org/r1679495
Log:
SOLR-7508: SolrParams.toMultiMap() does not handle arrays
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/solrj/ (props changed)
lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java
lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/common/params/SolrParamTest.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=1679495&r1=1679494&r2=1679495&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/CHANGES.txt (original)
+++ lucene/dev/branches/branch_5x/solr/CHANGES.txt Fri May 15 05:54:25 2015
@@ -606,6 +606,8 @@ Bug Fixes
* SOLR-7286: Using HDFS's FileSystem.newInstance does not guarantee a new instance.
(Mark Miller)
+* SOLR-7508: SolrParams.toMultiMap() does not handle arrays (Thomas Scheffler , Noble Paul)
+
Optimizations
----------------------
Modified: lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java?rev=1679495&r1=1679494&r2=1679495&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java (original)
+++ lucene/dev/branches/branch_5x/solr/solrj/src/java/org/apache/solr/common/params/SolrParams.java Fri May 15 05:54:25 2015
@@ -313,8 +313,12 @@ public abstract class SolrParams impleme
HashMap<String,String[]> map = new HashMap<>();
for (int i=0; i<params.size(); i++) {
String name = params.getName(i);
- String val = params.getVal(i).toString();
- MultiMapSolrParams.addParam(name,val,map);
+ Object val = params.getVal(i);
+ if (val instanceof String[]) {
+ MultiMapSolrParams.addParam(name, (String[]) val, map);
+ } else {
+ MultiMapSolrParams.addParam(name, val.toString(), map);
+ }
}
return map;
}
Modified: lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/common/params/SolrParamTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/common/params/SolrParamTest.java?rev=1679495&r1=1679494&r2=1679495&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/common/params/SolrParamTest.java (original)
+++ lucene/dev/branches/branch_5x/solr/solrj/src/test/org/apache/solr/common/params/SolrParamTest.java Fri May 15 05:54:25 2015
@@ -17,6 +17,7 @@
package org.apache.solr.common.params;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
@@ -25,6 +26,7 @@ import java.util.Iterator;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.solr.common.SolrException;
+import org.apache.solr.common.util.NamedList;
/**
*/
@@ -80,6 +82,36 @@ public class SolrParamTest extends Lucen
}
+ public void testMultiValues() {
+ NamedList nl = new NamedList();
+ nl.add("x", "X1");
+ nl.add("x", "X2");
+ nl.add("x", new String[]{"X3", "X4"});
+ Map<String, String[]> m = SolrParams.toMultiMap(nl);
+ String[] r = m.get("x");
+ assertTrue(Arrays.asList(r).containsAll(Arrays.asList(new String[]{"X1", "X2", "X3", "X4"})));
+ }
+
+ public void testGetAll() {
+ ModifiableSolrParams params = new ModifiableSolrParams();
+ params.add("x", "X1");
+ params.add("x", "X2");
+ params.add("y", "Y");
+ Map<String, Object> m = params.getAll(null, "x", "y");
+ String[] x = (String[]) m.get("x");
+ assertEquals(2, x.length);
+ assertEquals("X1", x[0]);
+ assertEquals("X2", x[1]);
+ assertEquals("Y", m.get("y"));
+ try {
+ params.required().getAll(null, "z");
+ fail("Error expected");
+ } catch (SolrException e) {
+ assertEquals(e.code(), SolrException.ErrorCode.BAD_REQUEST.code);
+
+ }
+ }
+
public void testModParamAddParams() {
ModifiableSolrParams aaa = new ModifiableSolrParams();