Description
This field, and the corresponding getter, and the code that extracts debug information from the NamedList response in extractDebugInfo, all use a Map<String, String> type.
However, when debug.explain.structured=true is used the values returned in response are not String-s, instead they are SimpleOrderedMap-s. This causes the following exception to be thrown:
java.lang.ClassCastException: class org.apache.solr.common.util.SimpleOrderedMap cannot be cast to class java.lang.String (org.apache.solr.common.util.SimpleOrderedMap is in unnamed module of loader 'app'; java.lang.String is in module java.base of loader 'bootstrap') at __randomizedtesting.SeedInfo.seed([1D6FB4036A639051:173F5FF19E860E6F]:0) at org.apache.solr.client.solrj.response.QueryResponse.extractDebugInfo(QueryResponse.java:246) at org.apache.solr.client.solrj.response.QueryResponse.setResponse(QueryResponse.java:143) at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:207) at org.apache.solr.client.solrj.SolrClient.query(SolrClient.java:987) ...
The simple fix is to change the type of this field to Map<String, Object> but this would change the public API of QueryResponse.getExplainMap() in incompatible way. Still, I would argue it's worth to change it - AFAIK this getter is not used anywhere in the Solr's codebase, and the change makes it more consistent with other getters.
Attachments
Issue Links
- links to