From c2c6bdcb39279889ae5b14a8aaaa5d3e10106da2 Mon Sep 17 00:00:00 2001 From: Anton Makeev Date: Wed, 29 Feb 2012 12:39:18 +0100 Subject: [PATCH] AppCode: Memory leak in tests fixed --- .../src/com/intellij/execution/impl/RunConfigurable.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurable.java b/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurable.java index 6f065d6d83ff..a88b3ec7034f 100644 --- a/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurable.java +++ b/platform/lang-impl/src/com/intellij/execution/impl/RunConfigurable.java @@ -78,6 +78,8 @@ class RunConfigurable extends BaseConfigurable { private static final Icon EDIT_DEFAULTS_ICON = IconLoader.getIcon(EDIT_DEFAULTS_ICON_PATH); @NonNls private static final String DIVIDER_PROPORTION = "dividerProportion"; + private volatile boolean isDisposed = false; + private final Project myProject; private RunDialogBase myRunDialog; @NonNls private final DefaultMutableTreeNode myRoot = new DefaultMutableTreeNode("Root"); @@ -263,6 +265,8 @@ class RunConfigurable extends BaseConfigurable { }, KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), JComponent.WHEN_FOCUSED); SwingUtilities.invokeLater(new Runnable() { public void run() { + if (isDisposed) return; + myTree.requestFocusInWindow(); final RunnerAndConfigurationSettings settings = manager.getSelectedConfiguration(); if (settings != null) { @@ -711,6 +715,7 @@ class RunConfigurable extends BaseConfigurable { } public void disposeUIResources() { + isDisposed = true; for (Configurable configurable : myStoredComponents.values()) { configurable.disposeUIResources(); }