private static <E> E waitOnEdtWithTimeout(@NotNull ThrowableComputable<E, RuntimeException> task, E defaultValue) {
    try {
      return ProcessIOExecutorService.INSTANCE.submit(task::compute).get(WAIT_TIMEOUT_ON_MAIN_THREAD_MS, TimeUnit.MILLISECONDS);
    }
    catch (ExecutionException e) {
      LOG.warn(e.getCause());
    }
    catch (Throwable ignored) {
    }
    return defaultValue;
  }
private static <E> E waitOnEdtWithTimeout(@NotNull ThrowableComputable<E, RuntimeException> task, E defaultValue)