private Object deserialize(byte fid, ByteBuffer buffer, int length) throws Exception { switch (FunctionId.values()[fid]) { case REGISTER_PARTITION_PROVIDER: return RegisterPartitionProviderFunction.deserialize(buffer, length); case REGISTER_PARTITION_REQUEST: return RegisterPartitionRequestFunction.deserialize(buffer, length); case REPORT_PARTITION_AVAILABILITY: return ReportPartitionAvailabilityFunction.deserialize(buffer, length); case NODE_HEARTBEAT: return NodeHeartbeatFunction.deserialize(buffer, length); case START_TASKS: return StartTasksFunction.deserialize(buffer, length); case NOTIFY_TASK_COMPLETE: return NotifyTaskCompleteFunction.deserialize(buffer, length); case NOTIFY_JOBLET_CLEANUP: return NotifyJobletCleanupFunction.deserialize(buffer, length); case CLEANUP_JOBLET: return CleanupJobletFunction.deserialize(buffer, length); } return javaSerde.deserializeObject(buffer, length); } }