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
public void treeCollapsed(TreeEvent event) {
				handleTreeCollapse(event);
			}
		});
	}
	/*
	 * (non-Javadoc) Method declared on StructuredViewer. Builds the initial
	 * tree and handles the automatic expand feature.
	 */
	protected void inputChanged(Object input, Object oldInput) {
		preservingSelection(new Runnable() {
			public void run() {
				Control tree = getControl();
				boolean useRedraw = true;
				
				
				if (useRedraw)
					tree.setRedraw(false);
				removeAll(tree);
				tree.setData(getRoot());
				createChildren(tree);
				internalExpandToLevel(tree, expandToLevel);
				if (useRedraw)
					tree.setRedraw(true);
			}
		});
	}
	/**
	 * Recursively collapses the subtree rooted at the given widget to the
	 * given level.