From 4aab22325a45655a822e7ebd1cd53801ccb879bb Mon Sep 17 00:00:00 2001 From: peter Date: Fri, 3 Feb 2017 14:41:24 +0100 Subject: [PATCH] import project in a write-safe context in ProjectWizardTestCase (IDEA-167601) --- .../ide/projectWizard/ProjectWizardTestCase.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/java/testFramework/src/com/intellij/ide/projectWizard/ProjectWizardTestCase.java b/java/testFramework/src/com/intellij/ide/projectWizard/ProjectWizardTestCase.java index c16a552da6b0..3562e386c123 100644 --- a/java/testFramework/src/com/intellij/ide/projectWizard/ProjectWizardTestCase.java +++ b/java/testFramework/src/com/intellij/ide/projectWizard/ProjectWizardTestCase.java @@ -30,8 +30,8 @@ import com.intellij.openapi.projectRoots.SdkTypeId; import com.intellij.openapi.projectRoots.SimpleJavaSdkType; import com.intellij.openapi.roots.ProjectRootManager; import com.intellij.openapi.roots.ui.configuration.actions.NewModuleAction; -import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.Disposer; +import com.intellij.openapi.util.Ref; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.LocalFileSystem; import com.intellij.openapi.vfs.VirtualFile; @@ -49,6 +49,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.function.Supplier; /** * @author Dmitry Avdeev @@ -213,6 +214,10 @@ public abstract class ProjectWizardTestCase ext private Module importFrom(String path, @Nullable Project project, Consumer adjuster, final ProjectImportProvider... providers) { + return computeInWriteSafeContext(() -> doImportModule(path, project, adjuster, providers)); + } + + private Module doImportModule(String path, @Nullable Project project, Consumer adjuster, ProjectImportProvider[] providers) { VirtualFile file = LocalFileSystem.getInstance().refreshAndFindFileByPath(path); assertNotNull("Can't find " + path, file); assertTrue(providers[0].canImport(file, project)); @@ -226,6 +231,13 @@ public abstract class ProjectWizardTestCase ext return ContainerUtil.getFirstItem(ImportModuleAction.createFromWizard(project, myWizard)); } + private static T computeInWriteSafeContext(Supplier supplier) { + Ref module = Ref.create(); + ApplicationManager.getApplication().invokeLater(() -> module.set(supplier.get())); + UIUtil.dispatchAllInvocationEvents(); + return module.get(); + } + protected Sdk createSdk(String name, SdkTypeId sdkType) { final Sdk sdk = ProjectJdkTable.getInstance().createSdk(name, sdkType); ApplicationManager.getApplication().runWriteAction(() -> ProjectJdkTable.getInstance().addJdk(sdk));