@Override
    public void threadAction(@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);
      }
    }
@Override
    public void threadAction(@NotNull SuspendContextImpl suspendContext)