void (@NotNull SuspendContextImpl suspendContext) { if (container.isObsolete()) return; int status = myThreadProxy.status(); if (status == ThreadReference.THREAD_STATUS_ZOMBIE) { container.errorOccurred(JavaDebuggerBundle.message("frame.panel.thread.finished")); } // isCollected is not needed as ObjectCollectedException was handled in status call else if (/*!myThreadProxy.isCollected() && */myDebugProcess.getSuspendManager().isSuspended(myThreadProxy)) { if (!(status == ThreadReference.THREAD_STATUS_UNKNOWN) && !(status == ThreadReference.THREAD_STATUS_NOT_STARTED)) { try { int added = 0; Iterator<StackFrameProxyImpl> iterator = myThreadProxy.frames().iterator(); if (iterator.hasNext() && firstFrameIndex > 0) { iterator.next(); added++; } myDebugProcess.getManagerThread().schedule( new AppendFrameCommand(suspendContext, iterator, container, added, firstFrameIndex, null, 0, true)); } catch (EvaluateException e) { container.errorOccurred(e.getMessage()); } } } else { container.errorOccurred(JavaDebuggerBundle.message("frame.panel.frames.not.available")); } }