void (@NotNull Collection<VFileCreateEvent> childrenToCreate) { if (childrenToCreate.size() <= 1) { childrenToCreate.removeIf(event -> !event.isValid()); return; } boolean isCaseSensitive = isCaseSensitive(); Set<CharSequence> existingNames = CollectionFactory.createCharSequenceSet(isCaseSensitive, myData.myChildrenIds.length); VfsData vfsData = getVfsData(); for (int id : myData.myChildrenIds) { existingNames.add(vfsData.getNameByFileId(id)); } int id = getId(); synchronized (myData) { existingNames.addAll(FSRecords.listNames(id)); validateAgainst(childrenToCreate, existingNames); if (!childrenToCreate.isEmpty() && !allChildrenLoaded()) { // findChild asks FS when failed to locate child, and so should we int beforeSize = existingNames.size(); String[] names = getFileSystem().list(this); existingNames.addAll(Arrays.asList(names)); if (beforeSize != existingNames.size()) { validateAgainst(childrenToCreate, existingNames); } } } }