private static boolean runWithTempMergeFiles(@Nullable Project project,
                                               @NotNull ThreesideMergeRequest request,
                                               @NotNull MergeTask mergeTask) throws IOException {
    OutputFile outputFile = null;
    List<InputFile> inputFiles = null;
    try {
      outputFile = createOutputFile(project, request.getOutputContent(), request.getTitle());
      inputFiles = createInputFiles(project, request.getContents(), request.getContentTitles(), request.getTitle());

      boolean success = mergeTask.runMerge(outputFile, inputFiles);
      if (success) {
        outputFile.apply();
      }
      return success;
    }
    finally {
      if (outputFile != null) outputFile.cleanup();
      if (inputFiles != null) {
        for (InputFile file : inputFiles) {
          file.cleanup();
        }
      }
    }
  }
private static boolean runWithTempMergeFiles(@Nullable Project project,
                                               @NotNull ThreesideMergeRequest request,
                                               @NotNull MergeTask mergeTask)