From 39b0f3e887b528243087218ecc283fd24d232403 Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Wed, 2 Feb 2011 13:32:02 +0100 Subject: [PATCH] fix dangling JDK copies in module's order entries (IDEA-64545 ) --- .../ui/configuration/ModulesConfigurator.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesConfigurator.java b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesConfigurator.java index ed18f67a021e..daf020a0615e 100644 --- a/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesConfigurator.java +++ b/java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/ModulesConfigurator.java @@ -287,9 +287,26 @@ public class ModulesConfigurator implements ModulesProvider, ModuleEditor.Change for (ModuleEditor moduleEditor : myModuleEditors) { moduleEditor.canApply(); } + + final Map modifiedToOriginalMap = new HashMap(); + final ProjectSdksModel projectJdksModel = ProjectStructureConfigurable.getInstance(myProject).getProjectJdksModel(); + for (Map.Entry entry : projectJdksModel.getProjectSdks().entrySet()) { + modifiedToOriginalMap.put(entry.getValue(), entry.getKey()); + } + for (final ModuleEditor moduleEditor : myModuleEditors) { final ModifiableRootModel model = moduleEditor.apply(); if (model != null) { + if (!model.isSdkInherited()) { + // make sure the sdk is set to original SDK stored in the JDK Table + final Sdk modelSdk = model.getSdk(); + if (modelSdk != null) { + final Sdk original = modifiedToOriginalMap.get(modelSdk); + if (original != null) { + model.setSdk(original); + } + } + } models.add(model); } }