Open
Description
private Callable<ExecutionResult<T, R>> newCallable(final Task<T, R> task) {
return new IdentifiableCallable<T, ExecutionResult<T,R>>() {
@Override
public ExecutionResult<T, R> call() throws Exception {
R r = null;
ExecutionResult<T, R> result = null;
try {
task.markStart();
executionListener.onStart(task);
r = task.execute(); // throw a Error
result = ExecutionResult.success(task.getId(), r);
state.removeErrored(result);
task.markEnd();
executionListener.onSuccess(task);
} catch (Exception e) { //cannot catch Error
result = ExecutionResult.errored(task.getId(), r, e.getMessage());
state.addErrored(result);
task.markEnd();
executionListener.onError(task, e);
logger.error("Error Execution Task # {}", task.getId(), e);
} finally {
// result is NULL
result.setTimes(task.getSta
4CB3
rtTime(), task.getEndTime());
}
return result;
}
@Override
public T getIdentifier() {
return task.getId();
}
};
}
Metadata
Metadata
Assignees
Labels
No labels