@Override
  public void computeChildren(@NotNull final XCompositeNode node) {
    scheduleCommand(getEvaluationContext(), node, new SuspendContextCommandImpl(getEvaluationContext().getSuspendContext()) {
        @Override
        public Priority getPriority() {
          return Priority.NORMAL;
        }

        @Override
        public void contextAction(@NotNull SuspendContextImpl suspendContext) {
          final XValueChildrenList children = new XValueChildrenList();

          Value value = getDescriptor().getValue();

          List<ReferringObject> referringObjects;
          try {
            referringObjects = myReferringObjectsProvider.getReferringObjects(getEvaluationContext(), (ObjectReference)value,
                                                                              MAX_REFERRING);
          } catch (ObjectCollectedException e) {
            node.setErrorMessage(JavaDebuggerBundle.message("evaluation.error.object.collected"));
            return;
          }
          catch (EvaluateException e) {
            node.setErrorMessage(e.getMessage());
            return;
          }

          int i = 1;
          for (final ReferringObject object : referringObjects) {
            String nodeName = object.getNodeName(i++);
            ValueDescriptorImpl descriptor = object.createValueDescription(getProject(), value);
            JavaReferringObjectsValue referringValue =
              new JavaReferringObjectsValue(null, descriptor, getEvaluationContext(),
                                            myReferringObjectsProvider, getNodeManager(), object.getNodeCustomizer());
            if (nodeName == null) {
              children.add(referringValue);
            }
            else {
              children.add(nodeName, referringValue);
            }
          }

          node.addChildren(children, true);
        }
      }
    );
  }
@Override
  public void computeChildren(@NotNull final XCompositeNode node)