void (@NotNull FilePath path, @NotNull List<String> beforeChangeListsIds, @NotNull List<String> afterChangeListsIds) { myReadOnlyChangesCacheInvalidated.set(true); Set<String> removed = new HashSet<>(beforeChangeListsIds); afterChangeListsIds.forEach(removed::remove); Set<String> added = new HashSet<>(afterChangeListsIds); beforeChangeListsIds.forEach(added::remove); if (!removed.isEmpty() || !added.isEmpty()) { // We can't take CLM.LOCK here, so LocalChangeList will be created in delayed notificator itself myDelayedNotificator.changeListsForFileChanged(path, removed, added); } }