diff --git a/debugger/impl/com/intellij/debugger/engine/DebugProcessImpl.java b/debugger/impl/com/intellij/debugger/engine/DebugProcessImpl.java index ec860f96bb30..53e3fe578a76 100644 --- a/debugger/impl/com/intellij/debugger/engine/DebugProcessImpl.java +++ b/debugger/impl/com/intellij/debugger/engine/DebugProcessImpl.java @@ -1478,7 +1478,9 @@ public abstract class DebugProcessImpl implements DebugProcess { catch (EvaluateException e) { LOG.error(e); } - getSuspendManager().popFrame(suspendContext); + finally { + getSuspendManager().popFrame(suspendContext); + } } } diff --git a/debugger/impl/com/intellij/debugger/engine/SuspendManagerUtil.java b/debugger/impl/com/intellij/debugger/engine/SuspendManagerUtil.java index 3f341b33e680..7c29a2efacd4 100644 --- a/debugger/impl/com/intellij/debugger/engine/SuspendManagerUtil.java +++ b/debugger/impl/com/intellij/debugger/engine/SuspendManagerUtil.java @@ -4,7 +4,10 @@ import com.intellij.debugger.engine.events.SuspendContextCommandImpl; import com.intellij.debugger.jdi.ThreadReferenceProxyImpl; import com.intellij.openapi.diagnostic.Logger; -import java.util.*; +import java.util.HashSet; +import java.util.Iterator; +import java.util.ListIterator; +import java.util.Set; /* * Copyright (c) 2000-2004 by JetBrains s.r.o. All Rights Reserved. @@ -52,10 +55,12 @@ public class SuspendManagerUtil { Set result = new HashSet(); for (Iterator iterator = suspendManager.getEventContexts().iterator(); iterator.hasNext();) { - SuspendContextImpl suspendContext = iterator.next(); + final SuspendContextImpl suspendContext = iterator.next(); if(suspendContext.suspends(thread)) { ThreadReferenceProxyImpl contextThread = suspendContext.getThread(); - LOG.assertTrue(!contextThreads.contains(contextThread)); + if (contextThreads.contains(contextThread)) { + LOG.assertTrue(false, suspendContext.toString()); + } contextThreads.add(contextThread); result.add(suspendContext); } diff --git a/debugger/impl/com/intellij/debugger/impl/DebuggerContextImpl.java b/debugger/impl/com/intellij/debugger/impl/DebuggerContextImpl.java index c8c60bfc1db0..953600815b81 100644 --- a/debugger/impl/com/intellij/debugger/impl/DebuggerContextImpl.java +++ b/debugger/impl/com/intellij/debugger/impl/DebuggerContextImpl.java @@ -107,7 +107,7 @@ public final class DebuggerContextImpl implements DebuggerContext { DebuggerCommandImpl currentCommand = getDebugProcess().getManagerThread().getCurrentCommand(); LOG.assertTrue(currentCommand instanceof SuspendContextCommandImpl); LOG.assertTrue(((SuspendContextCommandImpl)currentCommand).getSuspendContext().getThread() == frameProxy.threadProxy()); - LOG.error("Thread : " + frameProxy.threadProxy().name(), e); + LOG.info("Thread : " + frameProxy.threadProxy().name(), e); objectReference = null; } return new EvaluationContextImpl(getSuspendContext(), frameProxy, objectReference);