void (@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); } }