void () { final List<Path> nonexistentFiles = myContext.getNonExistingModuleFiles(); if (!nonexistentFiles.isEmpty() && !myNonExistingFilesMessageShown) { final String filesString = getFilesString(nonexistentFiles); final String message = IdeBundle.message("message.text.files.do.not.exist", filesString); final int res = Messages.showYesNoDialog(getContentPane(), message, IdeBundle.message("dialog.title.convert.project"), Messages.getQuestionIcon()); if (res != Messages.YES) { super.doOKAction(); return; } myNonExistingFilesMessageShown = false; } try { if (!checkReadOnlyFiles()) { return; } ProjectConversionUtil.backupFiles(myAffectedFiles, myContext.getProjectBaseDir(), myBackupDir); Set<String> appliedConverters = myContext.getAppliedConverters(); for (ConversionRunner runner : myConversionRunners) { if (!appliedConverters.contains(runner.getProviderId()) && runner.isConversionNeeded()) { runner.preProcess(); runner.process(); runner.postProcess(); } } myContext.saveFiles(myAffectedFiles); myConverted = true; super.doOKAction(); } catch (CannotConvertException | IOException e) { LOG.info(e); showErrorMessage(IdeBundle.message("error.cannot.convert.project", e.getMessage())); } }