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

Jason Lowe commented on MAPREDUCE-4822:
---------------------------------------

The intent of TaskAttemptID.forName() is to be the inverse of its toString().  
In these cases we have a valid TaskAttemptID, so the IllegalArgumentException 
should never be thrown in this context unless forName() or toString() is 
broken.  And I can't imagine why someone would expect and rely on that behavior 
if it somehow were throwing it.  We have an ID, someone is asking for it, why 
convert it to a string and back before returning it?

To sum up, {{return TaskAttemptID.forName(taskAttempt.toString())}} should just 
be {{return taskAttempt}}.  If you're not comfortable making the change, that's 
fine let me know.  We can either file a followup JIRA or I can post the changes 
to the patch.
                
> Unnecessary conversions in History Events
> -----------------------------------------
>
>                 Key: MAPREDUCE-4822
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-4822
>             Project: Hadoop Map/Reduce
>          Issue Type: Improvement
>          Components: jobhistoryserver
>    Affects Versions: 0.23.4
>            Reporter: Robert Joseph Evans
>            Assignee: Chu Tong
>            Priority: Trivial
>              Labels: patch
>             Fix For: 0.24.0
>
>         Attachments: MAPREDUCE-4822.patch
>
>
> There are a number of conversions in the Job History Event classes that are 
> totally unnecessary.  It appears that they were originally used to convert 
> from the internal avro format, but now many of them do not pull the values 
> from the avro they store them internally.
> For example:
> {code:title=TaskAttemptFinishedEvent.java}
>   /** Get the task type */
>   public TaskType getTaskType() {
>     return TaskType.valueOf(taskType.toString());
>   }
> {code}
> The code currently is taking an enum, converting it to a string and then 
> asking the same enum to convert it back to an enum.  If java work properly 
> this should be a noop and a reference to the original taskType should be 
> returned.
> There are several places that a string is having toString called on it, and 
> since strings are immutable it returns a reference to itself.
> The various ids are not immutable and probably should not be changed at this 
> point.

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

Reply via email to