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

Bharath Mundlapudi commented on HADOOP-7440:
--------------------------------------------

Hi Todd & Devaraj,

I didn't see it was a servlet api. One of the problems we saw with propagating 
nullness to clients is that, clients forget to add these null checks. But we 
fixed case by case basis since some where fundamental JDK APIs. 

If you just search for how people are using this API, you will note that the 
following example will throw NPE.

{code}
      String[] paramValues = request.getParameterValues(paramName);
      if (paramValues.length == 1) {
        String paramValue = paramValues[0];
        if (paramValue.length() == 0)
          out.print("<I>No Value</I>");
        else
          out.print(paramValue);
      } else {
        out.println("<UL>");
        for(int i=0; i<paramValues.length; i++) {
          out.println("<LI>" + paramValues[i]);
        }
        out.println("</UL>");
      }
{code} 

I am proposing, if we are the API users, we should not return null rather 
return empty array. This will be much cleaner API. Is there any down side in 
returning empty array? 



> HttpServer.getParameterValues throws NPE for missing parameters
> ---------------------------------------------------------------
>
>                 Key: HADOOP-7440
>                 URL: https://issues.apache.org/jira/browse/HADOOP-7440
>             Project: Hadoop Common
>          Issue Type: Bug
>    Affects Versions: 0.23.0
>            Reporter: Todd Lipcon
>            Assignee: Todd Lipcon
>             Fix For: 0.23.0
>
>         Attachments: hadoop-7440.txt
>
>
> If the requested parameter was not specified in the request, the raw 
> request's getParameterValues function returns null. Thus, trying to access 
> {{unquoteValue.length}} throws NPE.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to