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

SolrJ QueryResponse._explainMap is incorrectly typed

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 8.3
    • 8.4
    • None

    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

              ab Andrzej Bialecki
              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 - 1h
                  1h