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

Jason Lowe commented on MAPREDUCE-6160:
---------------------------------------

This patch changes the semantics of getJobReport which breaks backwards 
compatibility.  Previously getJobReport would return null for an unknown job 
and now it throws.  This then cascades and changes other behaviors, e.g.: 
ClientServiceDelegate expects the job report could be null and in turn returns 
null for a job status when that occurs.  Now it, too, will throw which may not 
be OK.

Returning NPEs to the client is bad, but I'm not sure changing a null return to 
the client into a thrown IOException is the proper fix.  Clients should already 
be checking for null today, since that's what it was doing previously.

> Potential NullPointerException in MRClientProtocol interface implementation.
> ----------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-6160
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-6160
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>            Reporter: Rohith
>            Assignee: Rohith
>         Attachments: MAPREDUCE-6160.patch, MAPREDUCE-6160.patch
>
>
> In the implementation of MRClientProtocol, many methods can throw 
> NullPointerExceptions. Instead of NullPointerExceptions, better to throw 
> IOException with proper message.
> In the HistoryClientService class and MRClientService class has 
> #verifyAndGetJob() method that return job object as null.
> {code}
> getTaskReport(GetTaskReportRequest request) throws IOException;
> getTaskAttemptReport(GetTaskAttemptReportRequest request) throws IOException;
> getCounters(GetCountersRequest request) throws IOException;
> getTaskAttemptCompletionEvents(GetTaskAttemptCompletionEventsRequest request) 
> throws IOException;
> getTaskReports(GetTaskReportsRequest request) throws IOException;
> getDiagnostics(GetDiagnosticsRequest request) throws IOException;
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to