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

ClassCastExceptions in o.a.s.s.facet.FacetModule for valid JSON inputs that are not objects

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: 7.5, master (9.0)
    • Fix Version/s: None
    • Component/s: Facet Module
    • Labels:
    • Environment:

      Description

      Requesting the following URL gives a 500 error due to a ClassCastException in o.a.s.s.f.FacetModule: http://localhost:8983/solr/films/select?json=0

      The error response is caught by an uncaught ClassCastException, with the stacktrace shown here:

      java.lang.ClassCastException: java.lang.Long cannot be cast to java.util.Map
      at org.apache.solr.search.facet.FacetModule.prepare(FacetModule.java:78)
      at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:272)

       

      The cause of this bug is similar to #13178: line 78 in FacetModule reads

      jsonFacet = (Map<String, Object>) json.get("facet")

      and assumes that the JSON object contained in facet is a JSON object, while we only guarantee that it is a JSON value.

      Line 92 semms to contain another situation like this, but I do not have a test case handy for this specific case.

      This bug was found using Diffblue Microservices Testing. Find more information on this test campaign.

        Attachments

        1. SOLR-13180.patch
          1 kB
          Jan Høydahl
        2. home.zip
          376 kB
          Johannes Kloos

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                jkloos Johannes Kloos
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:

                  Time Tracking

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