Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-13806

SolrJ QueryResponse._explainMap is incorrectly typed

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 8.3
    • Fix Version/s: 8.4
    • Component/s: None
    • Labels:

      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

            Activity

              People

              • Assignee:
                ab Andrzej Bialecki
                Reporter:
                ab Andrzej Bialecki
              • Votes:
                0 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 0.5h
                  0.5h