Hello,
Using SolrJ i built a method that consumes output produced by JSON facets, it
also checks the count before further processing the output:
<result name="response" numFound="49" start="0">
</result>
<lst name="facets">
<int name="count">49</int>
<lst name="by_day">
<arr name="buckets">
<lst>
This is the code reading the count value via SolrJ:
QueryResponse response = sourceClient.query(query);
NamedList jsonFacets = (NamedList)response.getResponse().get("facets");
int totalOccurences = (int)jsonFacets.get("count");
The problem is, this code doesn't work in unit tests, it throws a:
java.lang.ClassCastException: java.lang.Long cannot be cast to
java.lang.Integer!?
But why it is an integer right? Anyway, i change the totalOccurences and the
cast to a long and the unit tests runs just fine. But when actually running the
code, i suddenly get another cast exception at exactly the same line.
java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
What is going on? The only difference is that the unit tests runs in cloud mode
via AbstractFullDistribZkTestBase, but i run the code in a local dev non-cloud
mode. I haven't noticed this behaviour anywhere else although i have many unit
tests consuming lots of different pieces of Solr output, and all that code runs
fine in non-cloud mode too.
Is this to be expected, normal? Did i catch another bug?
Thanks!
Markus