private void processUnderFile(@NotNull VirtualFile file) {
    final MultiMap<VirtualFile, FileAnnotation> annotations = new MultiMap<>();
    synchronized (myLock) {
      for (FileAnnotation fileAnnotation : myFileAnnotations) {
        VirtualFile virtualFile = fileAnnotation.getFile();
        if (virtualFile != null &&
            virtualFile.isInLocalFileSystem() &&
            VfsUtilCore.isAncestor(file, virtualFile, true)) {
          annotations.putValue(virtualFile, fileAnnotation);
        }
      }
    }
    if (!annotations.isEmpty()) {
      for (Map.Entry<VirtualFile, Collection<FileAnnotation>> entry : annotations.entrySet()) {
        final VirtualFile key = entry.getKey();
        final VcsRevisionNumber number = fromDiffProvider(key);
        if (number == null) continue;
        final Collection<FileAnnotation> fileAnnotations = entry.getValue();
        List<FileAnnotation> copy = ContainerUtil.filter(fileAnnotations, it -> it.isBaseRevisionChanged(number));
        invalidateAnnotations(copy, false);
      }
    }
  }
private void processUnderFile(@NotNull VirtualFile file)