From e4cce36d51ab2b88f10f31877fbd48187119c46a Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Thu, 7 Nov 2013 19:47:27 +0100 Subject: [PATCH] java.lang.IllegalThreadStateException additional handling --- .../debugger/jdi/ThreadReferenceProxyImpl.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/jdi/ThreadReferenceProxyImpl.java b/java/debugger/impl/src/com/intellij/debugger/jdi/ThreadReferenceProxyImpl.java index 25d08bb63732..38140c698382 100644 --- a/java/debugger/impl/src/com/intellij/debugger/jdi/ThreadReferenceProxyImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/jdi/ThreadReferenceProxyImpl.java @@ -171,7 +171,15 @@ public final class ThreadReferenceProxyImpl extends ObjectReferenceProxyImpl imp myFrameCount = 0; } catch (IncompatibleThreadStateException e) { - if (!threadReference.isSuspended()) { + final boolean isSuspended; + try { + isSuspended = threadReference.isSuspended(); + } + catch (Throwable th) { + // unable to determine whether the thread is actually suspended, so propagating original exception + throw EvaluateExceptionUtil.createEvaluateException(e); + } + if (!isSuspended) { // give up because it seems to be really resumed throw EvaluateExceptionUtil.createEvaluateException(e); }