Description
Following JUnit test to show what I mean:
ModifiableSolrParams params = new ModifiableSolrParams(); String[] paramValues = new String[] { "title:junit", "author:john" }; String paramName = "fq"; params.add(paramName, paramValues); NamedList<Object> namedList = params.toNamedList(); assertEquals("parameter values are not equal", paramValues, namedList.get(paramName)); Map<String, String[]> multiMap = SolrParams.toMultiMap(namedList); assertEquals("Expected " + paramValues.length + " values", paramValues.length, multiMap.get(paramName).length);
The first assertEquals() will run fine, while the last one triggers the error. Suddenly the length of the array is "1" and it's value of fq is like [Ljava.lang.String;@6f09c9c0. Looking into the code I see that the toMultiMap() method does not even look for arrays.