return this.getProcessStatus(taskId.toString());
}
@Override
public ProcessStatus getProcessStatus(String processId) {
AsyncTaskHandle handle =
asyncTaskHandleManager.getHandleByKey(processId);
if (handle == null) {
throw new NotFoundException("A process was not found for id "
+ processId);
}
ProcessStatus status = new ProcessStatus();
status.setStatusCode(handle.isDone() ? ProcessStatusCode.Finished
: ProcessStatusCode.Running);
int perComplete = 100;
if (handle.getMaxProgress() > 0) {
perComplete =
(handle.getCurrentProgress() * 100 / handle
.getMaxProgress());
}
status.setPercentageComplete(perComplete);
status.setUrl("" + processId);
if (handle.isDone()) {
Object result = null;
try {
result = handle.getResult();
} catch (InterruptedException e) {
// The process was forcefully cancelled
status.setStatusCode(ProcessStatusCode.Failed);
status.setMessages(Lists.newArrayList(e.getMessage()));
} catch (ExecutionException e) {