private @Nullable LinkResult runFilters(@NotNull Project project, @NotNull String line) {
    Filter.Result r = ReadAction.nonBlocking(() -> {
      if (project.isDisposed()) {
        return null;
      }
      try {
        return myCompositeFilterWrapper.getCompositeFilter().applyFilter(line, line.length());
      }
      catch (ProcessCanceledException e) {
        if (LOG.isDebugEnabled()) {
          LOG.debug("Skipping running filters on " + line, e);
        }
        return null;
      }
      catch (CompositeFilter.ApplyFilterException applyFilterException) {
        LOG.error(applyFilterException);
        return null;
      }
    }).executeSynchronously();
    if (r != null) {
      return new LinkResult(ContainerUtil.mapNotNull(r.getResultItems(), item -> convertResultItem(project, item)));
    }
    return null;
  }
private @Nullable LinkResult runFilters(@NotNull Project project, @NotNull String line)