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
* @param collection
	 *            the collection to observe for changes
	 * @param listener
	 *            the listener that will receive collection change events.
	 */
	protected abstract void addCollectionChangeListener(
			IObservableCollection collection, IObservablesListener listener);
	/**
	 * Unregisters the change listener from receving change events for the
	 * specified observable collection.
	 * 
	 * @param collection
	 *            the collection to stop observing.
	 * @param listener
	 *            the listener to remove
	 */
	protected abstract void removeCollectionChangeListener(
			IObservableCollection collection, IObservablesListener listener);
	protected final class TreeNode {
		private Object element;
		private Object parent;
		private Set parentSet;
		private IObservableCollection children;
		private IObservablesListener listener;
		TreeNode(Object element) {
			Assert.isNotNull(element, "element cannot be null"); 
			this.element = element;
			knownElements.add(element);
			elementNodes.put(element, this);
		}