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
collectionFactory = null;
	}
	/**
	 * Returns the set of elements known to this content provider. Label
	 * providers may track this set if they need to be notified about additions
	 * before the viewer sees the added element, and notified about removals
	 * after the element was removed from the viewer. This is intended for use
	 * by label providers, as it will always return the items that need labels.
	 * 
	 * @return unmodifiable observable set of items that will need labels
	 */
	public IObservableSet getKnownElements() {
		return unmodifiableKnownElements;
	}
	/**
	 * Returns a listener which, when a collection change event is received,
	 * updates the tree viewer through the {@link #viewerUpdater} field, and
	 * maintains the adds and removes parents from the appropriate tree nodes.
	 * 
	 * @param parentElement
	 *            the element that is the parent element of all elements in the
	 *            observable collection.
	 * @return a listener which updates the viewer when change events occur.
	 */
	protected abstract IObservablesListener createCollectionChangeListener(
			Object parentElement);
	/**
	 * Registers the change listener to receive change events for the specified
	 * observable collection.
	 *