Fix memory leak by disposing a classloader. The real issue though is located in TypeInfoParser, that has WeakHashMap with values referencing keys.

This commit is contained in:
Maxim Shafirov
2012-02-02 20:35:15 +04:00
parent 14ab62cf7a
commit 04b0699cd5
4 changed files with 28 additions and 9 deletions
@@ -91,10 +91,14 @@ public abstract class CodegenTestCase extends JetLiteFixture {
ClassFileFactory codegens = generateClassesInFile();
GeneratedClassLoader loader = new GeneratedClassLoader(codegens);
String fqName = NamespaceCodegen.getJVMClassName(JetPsiUtil.getFQName(myFile), true).replace("/", ".");
Class<?> namespaceClass = loader.loadClass(fqName);
Method method = namespaceClass.getMethod("box");
return (String) method.invoke(null);
try {
String fqName = NamespaceCodegen.getJVMClassName(JetPsiUtil.getFQName(myFile), true).replace("/", ".");
Class<?> namespaceClass = loader.loadClass(fqName);
Method method = namespaceClass.getMethod("box");
return (String) method.invoke(null);
} finally {
loader.dispose();
}
}
protected String generateToText() {