From 347809d256ef1c81eb4f9dfbefb4625cd244fc3f Mon Sep 17 00:00:00 2001 From: Louis Vignier Date: Thu, 28 Apr 2022 10:24:22 +0200 Subject: [PATCH] IDEA-244649 [sdk] Fire JDK changed after configuring a downloaded JDK #IDEA-244649 Fixed GitOrigin-RevId: 1bbd8d9912c1d82918191da3696dbf9587ee037f --- .../configuration/projectRoot/SdkDownloadTracker.java | 11 +++++++++++ .../openapi/roots/impl/ProjectRootManagerImpl.java | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/projectRoot/SdkDownloadTracker.java b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/projectRoot/SdkDownloadTracker.java index a56cc3b5f34f..bf49435adf7c 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/projectRoot/SdkDownloadTracker.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/projectRoot/SdkDownloadTracker.java @@ -13,11 +13,14 @@ import com.intellij.openapi.progress.*; import com.intellij.openapi.progress.util.ProgressIndicatorBase; import com.intellij.openapi.progress.util.ProgressIndicatorListener; import com.intellij.openapi.progress.util.RelayUiToDelegateIndicator; +import com.intellij.openapi.project.Project; import com.intellij.openapi.project.ProjectBundle; +import com.intellij.openapi.project.ProjectManager; import com.intellij.openapi.projectRoots.ProjectJdkTable; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.projectRoots.SdkModificator; import com.intellij.openapi.projectRoots.SdkType; +import com.intellij.openapi.roots.impl.ProjectRootManagerImpl; import com.intellij.openapi.ui.Messages; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.NlsContexts; @@ -436,6 +439,14 @@ public class SdkDownloadTracker { } sdkType.setupSdkPaths(sdk); + + for (Project project: ProjectManager.getInstance().getOpenProjects()) { + final var rootManager = ProjectRootManagerImpl.getInstanceImpl(project); + final Sdk projectSdk = rootManager.getProjectSdk(); + if (projectSdk != null && projectSdk.getName().equals(sdk.getName())) { + rootManager.projectJdkChanged(); + } + } } catch (Exception e) { LOG.warn("Failed to set up SDK " + sdk + ". " + e.getMessage(), e); diff --git a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java index 4646d86ad0d2..14ed86fed722 100644 --- a/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java +++ b/platform/projectModel-impl/src/com/intellij/openapi/roots/impl/ProjectRootManagerImpl.java @@ -308,7 +308,7 @@ public class ProjectRootManagerImpl extends ProjectRootManagerEx implements Pers projectJdkChanged(); } - protected void projectJdkChanged() { + public void projectJdkChanged() { incModificationCount(); mergeRootsChangesDuring(getActionToRunWhenProjectJdkChanges()); fireJdkChanged();