Bug 32254 [Viewers] AbstractTreeViewer uses HashSet to remember expansion state
I20030216 The custom hash table should be used instead. Otherwise expansion state may be lost due to a different equals implementation of the element and the IElementComparer.
bundles/org.eclipse.jface/src/org/eclipse/jface/viewers/AbstractTreeViewer.java
*           the widget
	 */
	private void disassociateChildren(Item item) {
		Item[] items = getChildren(item);
		for (int i = 0; i < items.length; i++) {
			if (items[i].getData() != null)
				disassociate(items[i]);
		}
	}
	
	protected Widget doFindInputItem(Object element) {
		
		Object root = getRoot();
		if (root == null)
			return null;
		if (equals(root, element))
			return getControl();
		return null;
	}
	
	protected Widget doFindItem(Object element) {
		
		Object root = getRoot();
		if (root == null)
			return null;
		Item[] items = getChildren(getControl());
		if (items != null) {
			for (int i = 0; i < items.length; i++) {
				Widget o = internalFindItem(items[i], element);
				if (o != null)