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
public Enumeration elements() {
		if (elementCount == 0) return emptyEnumerator;
		return new HashEnumerator(false);
	}
	/**
	 * Answers the value associated with the specified key in
	 * this Hashtable.
	 *
	 * @param		key	the key of the value returned
	 * @return		the value associated with the specified key, null if the specified key
	 *				does not exist
	 */
	public Object get(Object key) {
		int index = (hashCode(key) & 0x7FFFFFFF) % elementData.length;
		HashMapEntry entry = elementData[index];
		while (entry != null) {
			if (keyEquals(key, entry.key)) return entry.value;
			entry = entry.next;
		}
		return null;
	}
	private HashMapEntry getEntry(Object key) {
		int index = (hashCode(key) & 0x7FFFFFFF) % elementData.length;
		HashMapEntry entry = elementData[index];
		while (entry != null) {
			if (keyEquals(key, entry.key)) return entry;
			entry = entry.next;
		}
		return null;
	}