in tez-runtime-internals/src/main/java/org/apache/tez/runtime/api/impl/TezEvent.java [192:256]
private void deserializeEvent(DataInput in) throws IOException {
if (!in.readBoolean()) {
event = null;
return;
}
eventType = EventType.values()[in.readInt()];
if (eventType.equals(EventType.TASK_STATUS_UPDATE_EVENT)) {
// TODO NEWTEZ convert to PB
event = new TaskStatusUpdateEvent();
((TaskStatusUpdateEvent)event).readFields(in);
} else {
int eventBytesLen = in.readInt();
byte[] eventBytes = new byte[eventBytesLen];
in.readFully(eventBytes);
switch (eventType) {
case DATA_MOVEMENT_EVENT:
DataMovementEventProto dmProto =
DataMovementEventProto.parseFrom(eventBytes);
event = ProtoConverters.convertDataMovementEventFromProto(dmProto);
break;
case COMPOSITE_DATA_MOVEMENT_EVENT:
CompositeEventProto cProto = CompositeEventProto.parseFrom(eventBytes);
event = ProtoConverters.convertCompositeDataMovementEventFromProto(cProto);
break;
case VERTEX_MANAGER_EVENT:
VertexManagerEventProto vmProto =
VertexManagerEventProto.parseFrom(eventBytes);
event = new VertexManagerEvent(vmProto.getTargetVertexName(),
vmProto.getUserPayload() != null ? vmProto.getUserPayload().toByteArray() : null);
break;
case INPUT_READ_ERROR_EVENT:
InputReadErrorEventProto ideProto =
InputReadErrorEventProto.parseFrom(eventBytes);
event = new InputReadErrorEvent(ideProto.getDiagnostics(),
ideProto.getIndex(), ideProto.getVersion());
break;
case TASK_ATTEMPT_FAILED_EVENT:
TaskAttemptFailedEventProto tfProto =
TaskAttemptFailedEventProto.parseFrom(eventBytes);
event = new TaskAttemptFailedEvent(tfProto.getDiagnostics());
break;
case TASK_ATTEMPT_COMPLETED_EVENT:
event = new TaskAttemptCompletedEvent();
break;
case INPUT_FAILED_EVENT:
InputFailedEventProto ifProto =
InputFailedEventProto.parseFrom(eventBytes);
event = new InputFailedEvent(ifProto.getTargetIndex(), ifProto.getVersion());
break;
case ROOT_INPUT_DATA_INFORMATION_EVENT:
RootInputDataInformationEventProto difProto = RootInputDataInformationEventProto
.parseFrom(eventBytes);
event = ProtoConverters.convertRootInputDataInformationEventFromProto(difProto);
break;
case ROOT_INPUT_INITIALIZER_EVENT:
EventProtos.RootInputInitializerEventProto riiProto = EventProtos.RootInputInitializerEventProto.parseFrom(eventBytes);
event = ProtoConverters.convertRootInputInitializerEventFromProto(riiProto);
break;
default:
// RootInputUpdatePayload event not wrapped in a TezEvent.
throw new TezUncheckedException("Unexpected TezEvent"
+ ", type=" + eventType);
}
}
}