Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-2469

inconsistency in SolrParams.get()

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • core/other
    • None
    • all

    • New

    Description

      The returned value from solrParams.get( key ) depends on the implementing class such that:

      modifiableParams = new ModifiableSolrParams( req.getParams() );
      assert modifiableParams.get("key").equals( req.getParams().get("key") );
      

      fails for requests built from a SimpleRequestParser or StandardRequestParser where the parameter "key" was given, but empty ( e.g. localhost:8393/select/?key=&para1=val1&parm2=val2 ).

      The reason is that oas.request.ServletSolrParams returns null for values with length() == 0,
      but all other SolrParams implementations return the empty String.

      This behaviour has also side effects on search components:
      Most, if not all, standard search components check for something like

      if (reg.getParams().getBool(myTriggerParameter, false) )

      { ...do what I am supposed to do... }

      In case of ServletSolrParams getBool() returns the desired and expected "false", all other Implementations throw a "bad request" Exception.
      One may argue that suppling a parameter with an empty value indeed is a malformed request, ...

      Nonetheless I think, the above mentioned equality check should hold true for any request and any SolrParams.

      Because I cannot oversee the implications, I currently don't have a better suggestion to achieve this, than
      to make ServleSolrParams also return the empty String, which is in my opinion counter-intuitive and does not the right thing for the getBool(), getInt() etc. cases.

      Attachments

        Activity

          People

            Unassigned Unassigned
            wese Frank Wesemann
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: