• Type: Bug Bug
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: core/other
    • Labels:
    • Environment:


    • Lucene Fields:


      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) )

      { 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.


        Mark Thomas made changes -
        Workflow Default workflow, editable Closed status [ 12563311 ] jira [ 12584180 ]
        Mark Thomas made changes -
        Field Original Value New Value
        Workflow jira [ 12511261 ] Default workflow, editable Closed status [ 12563311 ]
        Frank Wesemann created issue -


          • Assignee:
            Frank Wesemann
          • Votes:
            0 Vote for this issue
            1 Start watching this issue


            • Created: