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/CustomHashtable.java
/**
 * HashMapEntry is an internal class which is used to hold the entries of a Hashtable.
 */
private static class HashMapEntry {
	Object key, value;
	HashMapEntry next;
	HashMapEntry(Object theKey, Object theValue) {
		key = theKey;
		value = theValue;
	}
}	
private static final class EmptyEnumerator implements Enumeration {
	public boolean hasMoreElements() {
		return false;
	}
	
	public Object nextElement() {
		throw new NoSuchElementException();
	}
}
private class HashEnumerator implements Enumeration {
	boolean key;
	int start;
	HashMapEntry entry;