Bug 239015 [Databinding] ObservableListTreeContentProvider adds the value passed to TreeViewer#setInput() to the known-elements
The input element is never shown in the viewer so it should no get part of the knownElements further more it restricts the usability of the content-provider because the input-element itself already has to provide the required Observable-Attribute(s).
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/viewers/ObservableCollectionTreeContentProvider.java
TreeNode node = getExistingNode(element);
		if (node != null)
			return node.getParent();
		return null;
	}
	public Object[] getElements(Object input) {
		return getChildren(input);
	}
	public Object[] getChildren(Object element) {
		Object[] children = getOrCreateNode(element).getChildren();
		for (int i = 0; i < children.length; i++)
			getOrCreateNode(children[i]).addParent(element);
		return children;
	}
	public boolean hasChildren(Object element) {
		if (structureAdvisor != null) {
			Boolean hasChildren = structureAdvisor.hasChildren(element);
			if (hasChildren != null) {
				return hasChildren.booleanValue();
			}
		}
		return getOrCreateNode(element).hasChildren();
	}
	protected TreeNode getOrCreateNode(Object element) {
		TreeNode node = getExistingNode(element);
		if (node == null) {
			node = new TreeNode(element);
		}
		return node;
	}