From 9db043d07a97c9f1f3c282133f93c43d3457dab0 Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Wed, 7 Dec 2011 14:25:37 +0100 Subject: [PATCH] fix Invalid stack frame exception --- .../debugger/actions/ThreadDumpAction.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/java/debugger/impl/src/com/intellij/debugger/actions/ThreadDumpAction.java b/java/debugger/impl/src/com/intellij/debugger/actions/ThreadDumpAction.java index 91e4fb592b6d..09d16c60f353 100644 --- a/java/debugger/impl/src/com/intellij/debugger/actions/ThreadDumpAction.java +++ b/java/debugger/impl/src/com/intellij/debugger/actions/ThreadDumpAction.java @@ -188,15 +188,20 @@ public class ThreadDumpAction extends AnAction implements AnAction.TransparentUp for (int i = 0, framesSize = frames.size(); i < framesSize; i++) { final StackFrame stackFrame = frames.get(i); - final Location location = stackFrame.location(); - buffer.append("\n\t ").append(renderLocation(location)); + try { + final Location location = stackFrame.location(); + buffer.append("\n\t ").append(renderLocation(location)); - final List monitors = lockedAt.get(i); - if (monitors != null) { - for (ObjectReference monitor : monitors) { - buffer.append("\n\t - ").append(renderLockedObject(monitor)); + final List monitors = lockedAt.get(i); + if (monitors != null) { + for (ObjectReference monitor : monitors) { + buffer.append("\n\t - ").append(renderLockedObject(monitor)); + } } } + catch (InvalidStackFrameException e) { + buffer.append("\n\t Invalid stack frame: ").append(e.getMessage()); + } } } catch (IncompatibleThreadStateException e) {