summaryrefslogtreecommitdiff
path: root/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ProjectSdksModel.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ProjectSdksModel.java')
-rw-r--r--platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ProjectSdksModel.java16
1 files changed, 11 insertions, 5 deletions
diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ProjectSdksModel.java b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ProjectSdksModel.java
index e4c690ec05ed..87df147a745f 100644
--- a/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ProjectSdksModel.java
+++ b/platform/lang-impl/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ProjectSdksModel.java
@@ -86,6 +86,15 @@ public class ProjectSdksModel implements SdkModel {
}
public void reset(@Nullable Project project) {
+ resetSdkModel();
+ if (project != null) {
+ myProjectSdk = findSdk(ProjectRootManager.getInstance(project).getProjectSdkName());
+ }
+ myModified = false;
+ myInitialized = true;
+ }
+
+ private void resetSdkModel() {
myProjectSdks.clear();
final Sdk[] projectSdks = ProjectJdkTable.getInstance().getAllJdks();
for (Sdk sdk : projectSdks) {
@@ -96,11 +105,6 @@ public class ProjectSdksModel implements SdkModel {
LOG.error(e);
}
}
- if (project != null) {
- myProjectSdk = findSdk(ProjectRootManager.getInstance(project).getProjectSdkName());
- }
- myModified = false;
- myInitialized = true;
}
public void disposeUIResources() {
@@ -154,6 +158,7 @@ public class ProjectSdksModel implements SdkModel {
for (Sdk originalJdk : itemsInTable) {
final Sdk modifiedJdk = myProjectSdks.get(originalJdk);
LOG.assertTrue(modifiedJdk != null);
+ LOG.assertTrue(originalJdk != modifiedJdk);
jdkTable.updateJdk(originalJdk, modifiedJdk);
}
// Add new items to table
@@ -166,6 +171,7 @@ public class ProjectSdksModel implements SdkModel {
}
}
});
+ resetSdkModel();
myModified = false;
}