summaryrefslogtreecommitdiff
path: root/java/testFramework/src/com/intellij/compiler/CompilerTestUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/testFramework/src/com/intellij/compiler/CompilerTestUtil.java')
-rw-r--r--java/testFramework/src/com/intellij/compiler/CompilerTestUtil.java20
1 files changed, 19 insertions, 1 deletions
diff --git a/java/testFramework/src/com/intellij/compiler/CompilerTestUtil.java b/java/testFramework/src/com/intellij/compiler/CompilerTestUtil.java
index 0f8f11ce6788..e5a9ee47daed 100644
--- a/java/testFramework/src/com/intellij/compiler/CompilerTestUtil.java
+++ b/java/testFramework/src/com/intellij/compiler/CompilerTestUtil.java
@@ -8,10 +8,15 @@ import com.intellij.openapi.application.WriteAction;
import com.intellij.openapi.application.ex.ApplicationManagerEx;
import com.intellij.openapi.fileTypes.FileTypeManager;
import com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl;
+import com.intellij.openapi.module.Module;
+import com.intellij.openapi.module.ModuleManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.projectRoots.ProjectJdkTable;
+import com.intellij.openapi.projectRoots.Sdk;
import com.intellij.openapi.projectRoots.impl.JavaAwareProjectJdkTableImpl;
import com.intellij.openapi.projectRoots.impl.ProjectJdkTableImpl;
+import com.intellij.openapi.roots.ModuleRootManager;
+import com.intellij.openapi.roots.ModuleRootModificationUtil;
import com.intellij.openapi.roots.ProjectRootManager;
import com.intellij.openapi.util.JDOMUtil;
import com.intellij.openapi.util.WriteExternalException;
@@ -27,6 +32,7 @@ import org.jetbrains.jps.model.serialization.JpsGlobalLoader;
import java.io.File;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -91,8 +97,20 @@ public class CompilerTestUtil {
new WriteAction() {
protected void run(final Result result) {
ApplicationManagerEx.getApplicationEx().doNotSave(true);
+ Module[] modules = ModuleManager.getInstance(project).getModules();
JavaAwareProjectJdkTableImpl table = JavaAwareProjectJdkTableImpl.getInstanceEx();
- table.removeJdk(table.getInternalJdk());
+ Sdk internalJdk = table.getInternalJdk();
+ List<Module> modulesToRestore = new ArrayList<Module>();
+ for (Module module : modules) {
+ Sdk sdk = ModuleRootManager.getInstance(module).getSdk();
+ if (sdk != null && sdk.equals(internalJdk)) {
+ modulesToRestore.add(module);
+ }
+ }
+ table.removeJdk(internalJdk);
+ for (Module module : modulesToRestore) {
+ ModuleRootModificationUtil.setModuleSdk(module, internalJdk);
+ }
BuildManager.getInstance().clearState(project);
}
}.execute();