void (@NotNull SuspendContextImpl suspendContext) { final ThreadReferenceProxyImpl thread = myStackFrame.threadProxy(); try { if (!getSuspendManager().isSuspended(thread)) { notifyCancelled(); return; } } catch (ObjectCollectedException ignored) { notifyCancelled(); return; } if (!suspendContext.suspends(thread)) { suspendContext.postponeCommand(this); return; } if (myStackFrame.isBottom()) { DebuggerInvocationUtil.swingInvokeLater(myProject, () -> Messages.showMessageDialog(myProject, JavaDebuggerBundle .message("error.pop.bottom.stackframe"), XDebuggerBundle.message("xdebugger.reset.frame.title"), Messages.getErrorIcon())); return; } try { thread.popFrames(myStackFrame); getSuspendManager().popFrame(suspendContext); } catch (NativeMethodException e) { showError(JavaDebuggerBundle.message("error.native.method.exception")); LOG.info(e); } catch (EvaluateException e) { showError(JavaDebuggerBundle.message("error.pop.stackframe", e.getLocalizedMessage())); LOG.info(e); } }