From c5091adf1477a0bd28da3518f44ade28fcc63793 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Mon, 20 Feb 2012 18:53:14 +0400 Subject: [PATCH] Made BytecodeToolwindow and ResolveToolwindow disposable: got rid of unreleased editor exception on closing IDEA. #KT-733 fixed --- .../plugin/internal/codewindow/BytecodeToolwindow.java | 8 +++++++- .../plugin/internal/resolvewindow/ResolveToolwindow.java | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/internal/codewindow/BytecodeToolwindow.java b/idea/src/org/jetbrains/jet/plugin/internal/codewindow/BytecodeToolwindow.java index dc6283938dd..c3189378eaa 100644 --- a/idea/src/org/jetbrains/jet/plugin/internal/codewindow/BytecodeToolwindow.java +++ b/idea/src/org/jetbrains/jet/plugin/internal/codewindow/BytecodeToolwindow.java @@ -20,6 +20,7 @@ package org.jetbrains.jet.plugin.internal.codewindow; import com.intellij.ide.highlighter.JavaFileType; +import com.intellij.openapi.Disposable; import com.intellij.openapi.application.Result; import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.editor.Document; @@ -52,7 +53,7 @@ import java.util.Collections; import java.util.List; import java.util.Scanner; -public class BytecodeToolwindow extends JPanel { +public class BytecodeToolwindow extends JPanel implements Disposable { private static final int UPDATE_DELAY = 500; private static final String DEFAULT_TEXT = "/*\n" + "Generated bytecode for Kotlin source file.\n" + @@ -223,6 +224,11 @@ public class BytecodeToolwindow extends JPanel { return answer.toString(); } + @Override + public void dispose() { + EditorFactory.getInstance().releaseEditor(myEditor); + } + public static class Location { final Editor editor; final long modificationStamp; diff --git a/idea/src/org/jetbrains/jet/plugin/internal/resolvewindow/ResolveToolwindow.java b/idea/src/org/jetbrains/jet/plugin/internal/resolvewindow/ResolveToolwindow.java index 92fc98f0dfa..ba6c97cefc0 100644 --- a/idea/src/org/jetbrains/jet/plugin/internal/resolvewindow/ResolveToolwindow.java +++ b/idea/src/org/jetbrains/jet/plugin/internal/resolvewindow/ResolveToolwindow.java @@ -19,6 +19,7 @@ */ package org.jetbrains.jet.plugin.internal.resolvewindow; +import com.intellij.openapi.Disposable; import com.intellij.openapi.application.Result; import com.intellij.openapi.command.WriteCommandAction; import com.intellij.openapi.editor.Editor; @@ -62,7 +63,7 @@ import static org.jetbrains.jet.lang.resolve.calls.ResolutionDebugInfo.*; /* * @author abreslav */ -public class ResolveToolwindow extends JPanel { +public class ResolveToolwindow extends JPanel implements Disposable { public static final String BAR = "\n\n===\n\n"; @@ -340,4 +341,9 @@ public class ResolveToolwindow extends JPanel { } }.execute(); } + + @Override + public void dispose() { + EditorFactory.getInstance().releaseEditor(myEditor); + } }