@Override
  public <T> void jumpTo(@NotNull T commitId,
                         @NotNull BiFunction<? super VisiblePack, ? super T, Integer> rowGetter,
                         @NotNull SettableFuture<JumpResult> future,
                         boolean silently,
                         boolean focus) {
    if (!silently) {
      future.addListener(() -> {
        try {
          JumpResult result = future.get();
          if (result != JumpResult.SUCCESS) {
            handleCommitNotFound(commitId, result == JumpResult.COMMIT_DOES_NOT_MATCH, rowGetter);
          }
        }
        catch (InterruptedException | ExecutionException | CancellationException ignore) {
        }
      }, MoreExecutors.directExecutor());
    }

    tryJumpTo(commitId, rowGetter, future, focus);
  }
@Override
  public <T> void jumpTo(@NotNull T commitId,
                         @NotNull BiFunction<? super VisiblePack, ? super T, Integer> rowGetter,
                         @NotNull SettableFuture<JumpResult> future,
                         boolean silently,
                         boolean focus)