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