From 255c3d923f5f8bb7bdf98cbde27aa69d21d35e60 Mon Sep 17 00:00:00 2001 From: Sergey Malenkov Date: Fri, 23 Oct 2015 12:47:05 +0300 Subject: [PATCH] Fix memory leak in the XDebuggerEvaluationDialog by cleaning its root pane --- .../com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java b/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java index 9eda882e61f6..a3cbe29dbd85 100644 --- a/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java +++ b/platform/platform-impl/src/com/intellij/openapi/ui/impl/DialogWrapperPeerImpl.java @@ -874,11 +874,10 @@ public class DialogWrapperPeerImpl extends DialogWrapperPeer implements FocusTra super.dispose(); + removeAll(); // remove root pane from a component's list if (rootPane != null) { // Workaround for bug in native code to hold rootPane try { - ReflectionUtil.resetField(rootPane, "glassPane"); - ReflectionUtil.resetField(rootPane, "contentPane"); - + Disposer.clearOwnFields(rootPane); rootPane = null; ReflectionUtil.resetField(this, "windowListener");