From 2439b24beae7db24d2a7c0f37cb7e108084cf169 Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Thu, 21 Apr 2011 20:43:09 +0200 Subject: [PATCH] fix EDT assertion --- .../debugger/engine/DebugProcessEvents.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessEvents.java b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessEvents.java index 2d7c47544e75..dbb990f6c2bd 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessEvents.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessEvents.java @@ -51,6 +51,8 @@ import com.sun.jdi.request.EventRequestManager; import com.sun.jdi.request.ThreadDeathRequest; import com.sun.jdi.request.ThreadStartRequest; +import javax.swing.*; + /** * @author lex */ @@ -369,6 +371,7 @@ public class DebugProcessEvents extends DebugProcessImpl { boolean shouldResume = false; + final Project project = getProject(); if (hint != null) { final int nextStepDepth = hint.getNextStepDepth(suspendContext); if (nextStepDepth != RequestHint.STOP) { @@ -378,7 +381,7 @@ public class DebugProcessEvents extends DebugProcessImpl { } if(!shouldResume && hint.isRestoreBreakpoints()) { - DebuggerManagerEx.getInstanceEx(getProject()).getBreakpointManager().enableBreakpoints(this); + DebuggerManagerEx.getInstanceEx(project).getBreakpointManager().enableBreakpoints(this); } } @@ -394,7 +397,14 @@ public class DebugProcessEvents extends DebugProcessImpl { if (hint != null) { final RequestHint.SmartStepFilter smartStepFilter = hint.getSmartStepFilter(); if (smartStepFilter != null && !smartStepFilter.wasMethodExecuted()) { - ToolWindowManager.getInstance(getProject()).notifyByBalloon(ToolWindowId.DEBUG, MessageType.INFO, "Method " + smartStepFilter.getTargetMethodName() + "() has not been called"); + final String message = "Method " + smartStepFilter.getTargetMethodName() + "() has not been called"; + SwingUtilities.invokeLater(new Runnable() { + public void run() { + if (!project.isDisposed()) { + ToolWindowManager.getInstance(project).notifyByBalloon(ToolWindowId.DEBUG, MessageType.INFO, message); + } + } + }); } } }