mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
fixed memory leak in tests
This commit is contained in:
@@ -77,6 +77,7 @@ import org.jboss.netty.handler.codec.protobuf.ProtobufVarint32LengthFieldPrepend
|
||||
import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.annotations.TestOnly;
|
||||
import org.jetbrains.jps.api.*;
|
||||
import org.jetbrains.jps.cmdline.BuildMain;
|
||||
import org.jetbrains.jps.cmdline.ClasspathBootstrap;
|
||||
@@ -916,6 +917,11 @@ public class BuildManager implements ApplicationComponent{
|
||||
return listenPort;
|
||||
}
|
||||
|
||||
@TestOnly
|
||||
public void stopWatchingProject(Project project) {
|
||||
myProjectDataMap.remove(getProjectPath(project));
|
||||
}
|
||||
|
||||
private static String classpathToString(List<File> cp) {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
for (File file : cp) {
|
||||
|
||||
@@ -2,8 +2,13 @@ package com.intellij.compiler;
|
||||
|
||||
import com.intellij.compiler.impl.TranslatingCompilerFilesMonitor;
|
||||
import com.intellij.compiler.impl.javaCompiler.javac.JavacSettings;
|
||||
import com.intellij.compiler.server.BuildManager;
|
||||
import com.intellij.openapi.application.Result;
|
||||
import com.intellij.openapi.application.WriteAction;
|
||||
import com.intellij.openapi.application.ex.ApplicationManagerEx;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.projectRoots.ProjectJdkTable;
|
||||
import com.intellij.openapi.projectRoots.impl.JavaAwareProjectJdkTableImpl;
|
||||
import com.intellij.openapi.projectRoots.impl.ProjectJdkTableImpl;
|
||||
import com.intellij.openapi.roots.ProjectRootManager;
|
||||
import com.intellij.openapi.util.JDOMUtil;
|
||||
@@ -55,4 +60,27 @@ public class CompilerTestUtil {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void enableExternalCompiler(final Project project) {
|
||||
new WriteAction() {
|
||||
protected void run(final Result result) {
|
||||
CompilerWorkspaceConfiguration.getInstance(project).USE_COMPILE_SERVER = true;
|
||||
ApplicationManagerEx.getApplicationEx().doNotSave(false);
|
||||
JavaAwareProjectJdkTableImpl table = JavaAwareProjectJdkTableImpl.getInstanceEx();
|
||||
table.addJdk(table.getInternalJdk());
|
||||
}
|
||||
}.execute();
|
||||
}
|
||||
|
||||
public static void disableExternalCompiler(final Project project) {
|
||||
new WriteAction() {
|
||||
protected void run(final Result result) {
|
||||
CompilerWorkspaceConfiguration.getInstance(project).USE_COMPILE_SERVER = false;
|
||||
ApplicationManagerEx.getApplicationEx().doNotSave(true);
|
||||
JavaAwareProjectJdkTableImpl table = JavaAwareProjectJdkTableImpl.getInstanceEx();
|
||||
table.removeJdk(table.getInternalJdk());
|
||||
BuildManager.getInstance().stopWatchingProject(project);
|
||||
}
|
||||
}.execute();
|
||||
}
|
||||
}
|
||||
|
||||
+3
-19
@@ -17,7 +17,6 @@ package org.jetbrains.plugins.groovy.compiler;
|
||||
|
||||
import com.intellij.compiler.CompilerManagerImpl;
|
||||
import com.intellij.compiler.CompilerTestUtil;
|
||||
import com.intellij.compiler.CompilerWorkspaceConfiguration;
|
||||
import com.intellij.execution.ExecutionException;
|
||||
import com.intellij.execution.Executor;
|
||||
import com.intellij.execution.application.ApplicationConfiguration;
|
||||
@@ -33,14 +32,12 @@ import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.application.AccessToken;
|
||||
import com.intellij.openapi.application.Result;
|
||||
import com.intellij.openapi.application.WriteAction;
|
||||
import com.intellij.openapi.application.ex.ApplicationManagerEx;
|
||||
import com.intellij.openapi.command.WriteCommandAction;
|
||||
import com.intellij.openapi.compiler.*;
|
||||
import com.intellij.openapi.module.ModifiableModuleModel;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleManager;
|
||||
import com.intellij.openapi.module.StdModuleTypes;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
import com.intellij.openapi.projectRoots.impl.JavaAwareProjectJdkTableImpl;
|
||||
import com.intellij.openapi.projectRoots.impl.JavaSdkImpl;
|
||||
import com.intellij.openapi.roots.*;
|
||||
@@ -94,13 +91,8 @@ public abstract class GroovyCompilerTestCase extends JavaCodeInsightFixtureTestC
|
||||
//noinspection ConstantConditions
|
||||
CompilerProjectExtension.getInstance(getProject()).setCompilerOutputUrl(myMainOutput.findOrCreateDir("out").getUrl());
|
||||
if (useJps()) {
|
||||
ApplicationManagerEx.getApplicationEx().doNotSave(false);
|
||||
CompilerWorkspaceConfiguration.getInstance(getProject()).USE_COMPILE_SERVER = true;
|
||||
|
||||
JavaAwareProjectJdkTableImpl jdkTable = JavaAwareProjectJdkTableImpl.getInstanceEx();
|
||||
Sdk internalJdk = jdkTable.getInternalJdk();
|
||||
jdkTable.addJdk(internalJdk);
|
||||
ModuleRootModificationUtil.setModuleSdk(myModule, internalJdk);
|
||||
CompilerTestUtil.enableExternalCompiler(getProject());
|
||||
ModuleRootModificationUtil.setModuleSdk(myModule, JavaAwareProjectJdkTableImpl.getInstanceEx().getInternalJdk());
|
||||
}
|
||||
}
|
||||
}.execute();
|
||||
@@ -125,15 +117,7 @@ public abstract class GroovyCompilerTestCase extends JavaCodeInsightFixtureTestC
|
||||
public void run() {
|
||||
try {
|
||||
if (useJps()) {
|
||||
CompilerWorkspaceConfiguration.getInstance(getProject()).USE_COMPILE_SERVER = false;
|
||||
ApplicationManagerEx.getApplicationEx().doNotSave(true);
|
||||
new WriteCommandAction(getProject()) {
|
||||
@Override
|
||||
protected void run(Result result) throws Throwable {
|
||||
final JavaAwareProjectJdkTableImpl jdkTable = JavaAwareProjectJdkTableImpl.getInstanceEx();
|
||||
jdkTable.removeJdk(jdkTable.getInternalJdk());
|
||||
}
|
||||
}.execute();
|
||||
CompilerTestUtil.disableExternalCompiler(getProject());
|
||||
}
|
||||
|
||||
myMainOutput.tearDown();
|
||||
|
||||
Reference in New Issue
Block a user