@Override
  public void actionPerformed(@NotNull final AnActionEvent e) {
    DebuggerTreeNodeImpl[] selectedNode = getSelectedNodes(e.getDataContext());
    final DebuggerContextImpl debuggerContext = getDebuggerContext(e.getDataContext());
    final DebugProcessImpl debugProcess = debuggerContext.getDebugProcess();

    if (debugProcess == null) return;

    //noinspection ConstantConditions
    for (final DebuggerTreeNodeImpl debuggerTreeNode : selectedNode) {
      final ThreadDescriptorImpl threadDescriptor = ((ThreadDescriptorImpl)debuggerTreeNode.getDescriptor());

      if (threadDescriptor.isSuspended()) {
        final ThreadReferenceProxyImpl thread = threadDescriptor.getThreadReference();
        DebuggerManagerThreadImpl debuggerManagerThread = debugProcess.getManagerThread();
        debuggerManagerThread.schedule(new DebuggerCommandImpl() {
          @Override
          protected void action() {
            SuspendContextImpl suspendingContext = SuspendManagerUtil.getSuspendingContext(debugProcess.getSuspendManager(), thread);
            if (suspendingContext != null) {
              debuggerManagerThread.invoke(debugProcess.createResumeThreadCommand(suspendingContext, thread));
            }
            ApplicationManager.getApplication().invokeLater(() -> debuggerTreeNode.calcValue());
          }
        });
      }
    }
  }
@Override
  public void actionPerformed(@NotNull final AnActionEvent e)