From c94f97bf577c6c854f73083da713db68aac7c49f Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 24 Sep 2013 13:07:20 -0700 Subject: [PATCH] Properly disposing the environment in GenerateJavaToKotlinMethodMap --- .../jvm/GenerateJavaToKotlinMethodMap.java | 59 +++++++++++-------- 1 file changed, 34 insertions(+), 25 deletions(-) diff --git a/generators/src/org/jetbrains/jet/generators/jvm/GenerateJavaToKotlinMethodMap.java b/generators/src/org/jetbrains/jet/generators/jvm/GenerateJavaToKotlinMethodMap.java index cf5a8c0960f..071c9537eb7 100644 --- a/generators/src/org/jetbrains/jet/generators/jvm/GenerateJavaToKotlinMethodMap.java +++ b/generators/src/org/jetbrains/jet/generators/jvm/GenerateJavaToKotlinMethodMap.java @@ -17,8 +17,10 @@ package org.jetbrains.jet.generators.jvm; import com.google.common.collect.Lists; +import com.intellij.openapi.Disposable; import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.io.FileUtil; import com.intellij.psi.PsiClass; @@ -68,35 +70,42 @@ public class GenerateJavaToKotlinMethodMap { CompilerConfiguration configuration = new CompilerConfiguration(); configuration.add(CLASSPATH_KEY, PathUtil.findRtJar()); - JetCoreEnvironment coreEnvironment = new JetCoreEnvironment(CompileEnvironmentUtil.createMockDisposable(), configuration); + Disposable disposable = CompileEnvironmentUtil.createMockDisposable(); + try { + JetCoreEnvironment coreEnvironment = new JetCoreEnvironment(disposable, configuration); - StringBuilder buf = new StringBuilder(); - Printer printer = new Printer(buf); + StringBuilder buf = new StringBuilder(); + Printer printer = new Printer(buf); - printer.print(FileUtil.loadFile(new File("injector-generator/copyright.txt"))) - .println() - .println("package org.jetbrains.jet.lang.resolve.java.kotlinSignature;") - .println() - .println("import com.google.common.collect.ImmutableMultimap;") - .println() - .println("import static org.jetbrains.jet.lang.resolve.java.kotlinSignature.JavaToKotlinMethodMap.*;") - .println() - .println("/* This file is generated by ", GenerateJavaToKotlinMethodMap.class.getName(), ". DO NOT EDIT! */") - .println("@SuppressWarnings(\"unchecked\")") - .println("class JavaToKotlinMethodMapGenerated {").pushIndent() - .println("final ImmutableMultimap map;") - .println() - .println("JavaToKotlinMethodMapGenerated() {").pushIndent() - .println("ImmutableMultimap.Builder b = ImmutableMultimap.builder();") - .println(); + printer.print(FileUtil.loadFile(new File("injector-generator/copyright.txt"))) + .println() + .println("package org.jetbrains.jet.lang.resolve.java.kotlinSignature;") + .println() + .println("import com.google.common.collect.ImmutableMultimap;") + .println() + .println("import static org.jetbrains.jet.lang.resolve.java.kotlinSignature.JavaToKotlinMethodMap.*;") + .println() + .println("/* This file is generated by ", GenerateJavaToKotlinMethodMap.class.getName(), ". DO NOT EDIT! */") + .println("@SuppressWarnings(\"unchecked\")") + .println("class JavaToKotlinMethodMapGenerated {").pushIndent() + .println("final ImmutableMultimap map;") + .println() + .println("JavaToKotlinMethodMapGenerated() {").pushIndent() + .println("ImmutableMultimap.Builder b = ImmutableMultimap.builder();") + .println(); - MyMapBuilder builder = new MyMapBuilder(coreEnvironment.getProject()); - printer.printWithNoIndent(builder.toString()); + MyMapBuilder builder = new MyMapBuilder(coreEnvironment.getProject()); + printer.printWithNoIndent(builder.toString()); + + printer.println("map = b.build();"); + printer.popIndent().println("}"); + printer.popIndent().println("}"); + return buf; + } + finally { + Disposer.dispose(disposable); + } - printer.println("map = b.build();"); - printer.popIndent().println("}"); - printer.popIndent().println("}"); - return buf; } private static class MyMapBuilder extends JavaToKotlinClassMapBuilder {