diff --git a/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectManagerImpl.java b/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectManagerImpl.java index 1faf066c4d6a..4e19e5647c91 100644 --- a/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectManagerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/project/impl/ProjectManagerImpl.java @@ -517,10 +517,15 @@ public class ProjectManagerImpl extends ProjectManagerEx implements NamedJDOMExt @Nullable public Project convertAndLoadProject(String filePath, Ref cancelled) throws IOException { - final ConversionResult conversionResult; + final Ref conversionResult = new Ref(); final String fp = canonicalize(filePath); - conversionResult = ConversionService.getInstance().convert(fp); - if (conversionResult.openingIsCanceled()) { + UIUtil.invokeAndWaitIfNeeded(new Runnable() { + @Override + public void run() { + conversionResult.set(ConversionService.getInstance().convert(fp)); + } + }); + if (conversionResult.get().openingIsCanceled()) { cancelled.set(true); return null; } @@ -528,10 +533,10 @@ public class ProjectManagerImpl extends ProjectManagerEx implements NamedJDOMExt final Project project = loadProjectWithProgress(filePath, new Ref()); if (project == null) return null; - if (!conversionResult.conversionNotNeeded()) { + if (!conversionResult.get().conversionNotNeeded()) { StartupManager.getInstance(project).registerPostStartupActivity(new Runnable() { public void run() { - conversionResult.postStartupActivity(project); + conversionResult.get().postStartupActivity(project); } }); }