boolean (@Nullable Project currentProject, @NotNull Project project) { final Ref<Exception> refEx = new Ref<>(); final Set<String> variables = new HashSet<>(); final Map<String, String> naturesNames = new HashMap<>(); final List<String> projectsToConvert = getParameters().projectsToConvert; final boolean oneProjectToConvert = projectsToConvert.size() == 1; final String separator = oneProjectToConvert ? "<br>" : ", "; ProgressManager.getInstance().runProcessWithProgressSynchronously(() -> { try { for (String path : projectsToConvert) { File classPathFile = new File(path, EclipseXml.DOT_CLASSPATH_EXT); if (classPathFile.exists()) { EclipseClasspathReader.collectVariables(variables, JDOMUtil.load(classPathFile), path); } collectUnknownNatures(path, naturesNames, separator); } } catch (IOException | JDOMException e) { refEx.set(e); } }, EclipseBundle.message("eclipse.import.converting"), false, null); if (!refEx.isNull()) { Messages.showErrorDialog(project, refEx.get().getMessage(), getTitle()); return false; } if (!ProjectMacrosUtil.checkNonIgnoredMacros(project, variables)) { return false; } if (!naturesNames.isEmpty()) { final String title = EclipseBundle.message("notification.title.unknown.natures.detected"); final String naturesByProject; if (oneProjectToConvert) { naturesByProject = naturesNames.values().iterator().next(); } else { naturesByProject = StringUtil.join(naturesNames.keySet(), projectPath -> projectPath + "(" + naturesNames.get(projectPath) + ")", "<br>"); } Notifications.Bus.notify(new Notification("Unknown Natures Detected", title, EclipseBundle .message("notification.content.imported.projects.contain.unknown.natures", naturesByProject), NotificationType.WARNING)); } return true; }