From 837cdcffe79722c313f13134f40eab2ed55adfc7 Mon Sep 17 00:00:00 2001 From: Vladimir Krivosheev Date: Mon, 14 Oct 2024 22:19:29 +0200 Subject: [PATCH] IJPL-162718 fix GradleKotlinNewProjectWizardTest GitOrigin-RevId: f0c2977b9b14906f289754c602063cc28c490a81 --- .../wizard/AbstractGradleModuleBuilder.java | 31 +++++++++++++------ 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/plugins/gradle/java/src/service/project/wizard/AbstractGradleModuleBuilder.java b/plugins/gradle/java/src/service/project/wizard/AbstractGradleModuleBuilder.java index bb1f8643e197..0aaac5087f71 100644 --- a/plugins/gradle/java/src/service/project/wizard/AbstractGradleModuleBuilder.java +++ b/plugins/gradle/java/src/service/project/wizard/AbstractGradleModuleBuilder.java @@ -185,7 +185,7 @@ public abstract class AbstractGradleModuleBuilder extends AbstractExternalModule } @Override - protected void setupModule(Module module) throws ConfigurationException { + protected void setupModule(@NotNull Module module) throws ConfigurationException { super.setupModule(module); assert rootProjectPath != null; @@ -222,19 +222,30 @@ public abstract class AbstractGradleModuleBuilder extends AbstractExternalModule project.putUserData(ExternalSystemDataKeys.NEWLY_IMPORTED_PROJECT, Boolean.TRUE); } - // execute when current dialog is closed + // execute when the current dialog is closed ApplicationManager.getApplication().invokeLater(() -> { - if (isCreatingBuildScriptFile) { - preImportConfigurators.forEach(c -> c.accept(buildScriptFile, settingsScriptFile)); - openBuildScriptFile(project, buildScriptFile); - } - if (isCreatingNewLinkedProject() && gradleDistributionType.isWrapped()) { - generateGradleWrapper(project); - } - reloadProject(project); + finishModuleSetup(buildScriptFile, project); }, ModalityState.nonModal(), project.getDisposed()); } + private void finishModuleSetup(@Nullable VirtualFile buildScriptFile, @NotNull Project project) { + if (!project.isOpen()) { + ApplicationManager.getApplication().invokeLater(() -> finishModuleSetup(buildScriptFile, project), + ModalityState.nonModal(), + project.getDisposed()); + return; + } + + if (isCreatingBuildScriptFile) { + preImportConfigurators.forEach(c -> c.accept(buildScriptFile, settingsScriptFile)); + openBuildScriptFile(project, buildScriptFile); + } + if (isCreatingNewLinkedProject() && gradleDistributionType.isWrapped()) { + generateGradleWrapper(project); + } + reloadProject(project); + } + private void reloadProject(@NotNull Project project) { ExternalProjectsManagerImpl.getInstance(project).runWhenInitialized(() -> { ImportSpecBuilder importSpec = new ImportSpecBuilder(project, GradleConstants.SYSTEM_ID);