void (@NotNull List<WatchSymlinkRequest> watchSymlinkRequestsToRemove) { for (WatchSymlinkRequest request : watchSymlinkRequestsToRemove) { Ref<Boolean> remove = new Ref<>(true); WatchRootsUtil.forEachPathSegment(request.getOriginalPath(), '/', path -> { List<WatchRequest> requests = myRecursiveWatchRoots.get(path); if (requests != null && ContainerUtil.findInstance(requests, WatchRequestImpl.class) != null) { remove.set(false); return false; } return true; }); if (remove.get()) { removeWatchSymlinkRequest(request); } } }