public void removeFileDataFromIndices(@NotNull Collection<? extends ID<?, ?>> indexIds, int fileId, @Nullable VirtualFile file) {
    assert ProgressManager.getInstance().isInNonCancelableSection();
    try {
      // document diff can depend on the previous value that will be removed
      removeTransientFileDataFromIndices(indexIds, fileId, file);
      cleanProcessingFlag(fileId);
      Throwable unexpectedError = null;
      for (ID<?, ?> indexId : indexIds) {
        try {
          removeSingleIndexValue(indexId, fileId);
        }
        catch (Throwable e) {
          LOG.info(e);
          if (unexpectedError == null) {
            unexpectedError = e;
          }
        }
      }

      if (unexpectedError != null) {
        LOG.error(unexpectedError);
      }
    }
    finally {
      IndexingStamp.flushCache(fileId);
    }
  }
public void removeFileDataFromIndices(@NotNull Collection<? extends ID<?, ?>> indexIds, int fileId, @Nullable VirtualFile file)