@Override
  public void computeChildren(@NotNull final XCompositeNode node) {
    if (node.isObsolete()) return;
    ApplicationManager.getApplication().executeOnPooledThread(() -> {
      try {
        XValueChildrenList values = myFrameAccessor.loadVariable(this);

        restoreChildrenRenderers(values);

        if (values != null && !node.isObsolete()) {
          updateLengthIfIsCollection(values);

          if (isLargeCollection()) {
            values = processLargeCollection(values);
          }
          if (myFrameAccessor.isSimplifiedView()) {
            extractChildrenToGroup(PydevBundle.message("pydev.value.protected.attributes.group.name"), AllIcons.Nodes.C_protected, node,
                                   values, (String name) -> name.startsWith("_"),
                                   getPROTECTED_ATTRS_EXCLUDED());
          }
          else {
            node.addChildren(values, true);
          }
          if (isLargeCollection()) {
            updateOffset(node, values);
          }

          getAsyncValues(null, myFrameAccessor, values);
        }
      }
      catch (PyDebuggerException e) {
        if (!node.isObsolete()) {
          node.setErrorMessage("Unable to display children:" + e.getMessage());
        }
        LOG.warn(e);
      }
    });
  }
@Override
  public void computeChildren(@NotNull final XCompositeNode node)