@Override
  protected void doOKAction() {
    final List<Path> nonexistentFiles = context.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(affectedFiles, context.getProjectBaseDir(), backupDir);
      Set<String> appliedConverters = conversionResult.appliedConverters;
      for (ConversionRunner runner : conversionRunners) {
        if (!appliedConverters.contains(runner.getProviderId()) && runner.isConversionNeeded()) {
          runner.preProcess();
          runner.process();
          runner.postProcess();
        }
      }
      context.saveFiles(affectedFiles);
      myConverted = true;
      super.doOKAction();
    }
    catch (CannotConvertException | IOException e) {
      LOG.info(e);
      showErrorMessage(IdeBundle.message("error.cannot.convert.project", e.getMessage()));
    }
  }
@Override
  protected void doOKAction()