in cloud-vmware-server/src/main/java/jetbrains/buildServer/clouds/base/connector/CloudAsyncTaskExecutor.java [96:126]
private void processSingleTask(@NotNull AsyncCloudTask task) {
if (task.isDone()) {
final TaskCallbackHandler handler = myExecutingTasks.get(task);
try {
final CloudTaskResult result = task.executeOrGetResult();
handler.onComplete();
if (result.isHasErrors()) {
handler.onError(result.getThrowable());
} else {
handler.onSuccess();
}
} catch (Exception e) {
LOG.warnAndDebugDetails("An error occurred while executing : '" + task + "'", e);
handler.onError(e);
}
myExecutingTasks.remove(task);
if (myLongTasks.remove(task) != null) {
final long operationTime = System.currentTimeMillis() - task.getStartTime();
LOG.info(String.format("Long operation finished: '%s' took %d seconds to execute", task.toString(), operationTime / 1000));
}
} else {
final long operationTime = System.currentTimeMillis() - task.getStartTime();
if (operationTime > LONG_TASK_TIME) {
final Long lastTimeReported = myLongTasks.get(task);
if (lastTimeReported == null || (System.currentTimeMillis() - lastTimeReported) > LONG_TASK_TIME) {
LOG.info(String.format("Detected long running task:('%s', running for %d seconds)", task.toString(), operationTime / 1000));
myLongTasks.put(task, System.currentTimeMillis());
}
}
}
}