From 4da230648181372f6937770c9805da06774a3d24 Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Fri, 17 Dec 2010 14:28:38 +0300 Subject: [PATCH] allow no more than one suspend context with suspend policy 'suspend_all' --- .../debugger/engine/DebugProcessEvents.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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 efff8ab5787a..254ed0799282 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessEvents.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessEvents.java @@ -178,8 +178,19 @@ public class DebugProcessEvents extends DebugProcessImpl { getManagerThread().invokeAndWait(new DebuggerCommandImpl() { protected void action() throws Exception { + + if (eventSet.suspendPolicy() == EventRequest.SUSPEND_ALL) { + // check if there is already one request with policy SUSPEND_ALL + for (SuspendContextImpl context : getSuspendManager().getEventContexts()) { + if (context.getSuspendPolicy() == EventRequest.SUSPEND_ALL) { + eventSet.resume(); + return; + } + } + } + final SuspendContextImpl suspendContext = getSuspendManager().pushSuspendContext(eventSet); - + for (EventIterator eventIterator = eventSet.eventIterator(); eventIterator.hasNext();) { final Event event = eventIterator.nextEvent();