void (@NotNull Task task, @NotNull ProgressIndicator indicator, @Nullable Runnable continuation) { try { if (LOG.isDebugEnabled()) LOG.debug("Starting task '" + task + "' under progress: " + indicator, new Throwable()); task.run(indicator); } finally { try { if (indicator instanceof ProgressIndicatorEx) { ((ProgressIndicatorEx)indicator).finish(task); } } finally { if (continuation != null) { continuation.run(); } } } }