[ 
https://issues.apache.org/jira/browse/SOLR-4424?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13576274#comment-13576274
 ] 

Jack Krupansky edited comment on SOLR-4424 at 2/12/13 1:19 AM:
---------------------------------------------------------------

It may be technically true that the NameList class and some use cases for 
"<lst>" may support anonymous parameters, but I'm concerned about Solr 
parameters.

I'll extend the original issue description to include detection and reporting 
of other forms of unreasonable names for "SolrParams" parameters:

{code}
  <str>abc</str>  <!-- No parameter "name" attribute specified -->
  <str name="">abc</str>  <!-- Empty parameter "name" attribute specified -->
  <str name="    ">abc</str>   <!-- Empty parameter "name" attribute specified 
- trim white space -->
  <str name="  q  ">abc</str>   <!-- Make sure to trim parameter names of white 
space -->
  <str name="@@q%%//">abc</str>   <!-- Limit parameter names to alpha, digit, 
underscore, hyphen, and dot -->
{code}

Also, when I say "parameter", I mean the top level for a plugin (or child 
plugin as for spellcheckers) or an element of a "lst". The elements of an "arr" 
are a separate case:

{code}
       <arr name="components">
         <str>nameOfCustomComponent1</str>  <!-- OKAY to be be anonymous for an 
"array" -->
         <str>nameOfCustomComponent2</str>
       </arr>
{code}

Does anybody know of any solrconfig.xml use cases for anonymous parameter 
names? Or, is it basically only the immediate children of "arr" that can 
reasonably be unnamed?


                
      was (Author: jkrupan):
    It may be technically true that the NameList class and some use cases for 
"<lst>" may support anonymous parameters, I'm concerned about Solr parameters.

I'll extend the original issue description to include detection and reporting 
of other forms of unreasonable names for "SolrParams" parameters:

{code}
  <str>abc</str>  <!-- No parameter "name" attribute specified -->
  <str name="">abc</str>  <!-- Empty parameter "name" attribute specified -->
  <str name="    ">abc</str>   <!-- Empty parameter "name" attribute specified 
- trim white space -->
  <str name="  q  ">abc</str>   <!-- Make sure to trim parameter names of white 
space -->
  <str name="@@q%%//">abc</str>   <!-- Limit parameter names to alpha, digit, 
underscore, hyphen, and dot -->
{code}

Also, when I say "parameter", I mean the top level for a plugin (or child 
plugin as for spellcheckers) or an element of a "lst". The elements of an "arr" 
are a separate case:

{code}
       <arr name="components">
         <str>nameOfCustomComponent1</str>  <!-- OKAY to be be anonymous for an 
"array" -->
         <str>nameOfCustomComponent2</str>
       </arr>
{code}

Does anybody know of any solrconfig.xml use cases for anonymous parameter 
names? Or, is it basically only the immediate children of "arr" that can 
reasonably be unnamed?


                  
> Solr should complain if a parameter has no name in solrconfig.xml
> -----------------------------------------------------------------
>
>                 Key: SOLR-4424
>                 URL: https://issues.apache.org/jira/browse/SOLR-4424
>             Project: Solr
>          Issue Type: Bug
>          Components: Schema and Analysis
>    Affects Versions: 4.0
>            Reporter: Jack Krupansky
>
> Solr should complain with an appropriate message if the 'name' attribute is 
> missing for a parameter in solrconfig.xml, such as for the "defaults" 
> parameters for a request handler.
> Repro:
> Add this snippet to solrconfig.xml:
> {code}
>   <requestHandler name="/testBug" class="solr.SearchHandler">
>     <lst name="defaults">
>       <str Name="df">name</str>
>     </lst>
>   </requestHandler>
> {code}
> Here the user error is "Name" which should be lower-case "name".
> Start Solr.
> No complaint from Solr that the "name" attribute is missing. In this case, 
> the spelling of the attribute name is correct, but the case is wrong - "Name" 
> vs. "name".
> The DOMUtil.addToNamedList method fetches and uses the "name" attribute 
> without checking to see if it might be null or missing:
> {code}
>     final String name = getAttr(nd, "name");
>     ...
>     if (nlst != null) nlst.add(name,val);
> {code}
> I suggest that if the "name" attribute is null or missing an exception will 
> be thrown that says "Named list element is missing 'name' attribute" and the 
> full text of the element with whatever attributes it does have and its value 
> text. Is there a way to get the line number?

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to