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