@Async.Execute
    @Override
    public void run() {
      try {
        resultFuture.complete(task.apply(progressIndicator));
      }
      catch (Throwable e) {
        resultFuture.completeExceptionally(e);
      }
    }
@Async.Execute
    @Override
    public void run()