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
IObservableFactory collectionFactory,
			TreeStructureAdvisor structureAdvisor) {
		this.structureAdvisor = structureAdvisor;
		realm = SWTObservables.getRealm(Display.getDefault());
		viewerObservable = new WritableValue(realm);
		viewerUpdater = null;
		
		
		
		IObservableFactory knownElementsFactory = new IObservableFactory() {
			public IObservable createObservable(Object target) {
				return ObservableViewerElementSet.withComparer(realm, null,
						getElementComparer((Viewer) target));
			}
		};
		knownElements = MasterDetailObservables.detailSet(viewerObservable,
				knownElementsFactory, null);
		unmodifiableKnownElements = Observables
				.unmodifiableObservableSet(knownElements);
		Assert
				.isNotNull(collectionFactory,
						"Collection factory cannot be null"); 
		this.collectionFactory = collectionFactory;
	}
	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
		if (elementNodes != null && !elementNodes.isEmpty()) {
			
			TreeNode[] oldNodes = new TreeNode[elementNodes.size()];
			elementNodes.values().toArray(oldNodes);
			for (int i = 0; i < oldNodes.length; i++)