@Override
  public Object getRoot() {
    if (disposed) return null;
    onValidThread(this::promiseRootEntry);
    Node node = tree.root;
    return node == null ? null : node.object;
  }
@Override
  public Object getRoot()