private SqlTask(
TaskId taskId,
URI location,
String nodeId,
QueryContext queryContext,
SqlTaskExecutionFactory sqlTaskExecutionFactory,
ExecutorService taskNotificationExecutor,
DataSize maxBufferSize)
{
this.taskId = requireNonNull(taskId, "taskId is null");
this.taskInstanceId = UUID.randomUUID().toString();
this.location = requireNonNull(location, "location is null");
this.nodeId = requireNonNull(nodeId, "nodeId is null");
this.queryContext = requireNonNull(queryContext, "queryContext is null");
this.sqlTaskExecutionFactory = requireNonNull(sqlTaskExecutionFactory, "sqlTaskExecutionFactory is null");
requireNonNull(taskNotificationExecutor, "taskNotificationExecutor is null");
requireNonNull(maxBufferSize, "maxBufferSize is null");
outputBuffer = new LazyOutputBuffer(
taskId,
taskInstanceId,
taskNotificationExecutor,
maxBufferSize,
() -> queryContext.getTaskContextByTaskId(taskId).localSystemMemoryContext());
taskStateMachine = new TaskStateMachine(taskId, taskNotificationExecutor);
}