List<ShelvedChangeList> (@NotNull Collection<? extends VirtualFile> files, @NotNull Consumer<? super VcsException> exceptionConsumer) { final List<ShelvedChangeList> result = new ArrayList<>(files.size()); try { final FilesProgress filesProgress = new FilesProgress(files.size(), VcsBundle.message("shelve.import.to.progress")); for (VirtualFile file : files) { filesProgress.updateIndicator(file); String description = file.getNameWithoutExtension().replace('_', ' '); try { Path schemeNameDir = generateUniqueSchemePatchDir(description, true); Path patchFile = getPatchFileInConfigDir(schemeNameDir); List<? extends FilePatch> filePatches = loadPatchesWithoutContent(myProject, file.toNioPath(), new CommitContext()); if (!filePatches.isEmpty()) { Files.copy(file.toNioPath(), patchFile); ShelvedChangeList list = new ShelvedChangeList(patchFile, description, new SmartList<>(), createShelvedChangesFromFilePatches(myProject, patchFile, filePatches), file.getTimeStamp()); list.setName(schemeNameDir.getFileName().toString()); schemeManager.addScheme(list, false); result.add(list); } } catch (Exception e) { exceptionConsumer.accept(new VcsException(e)); } } } finally { notifyStateChanged(); } return result; }