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
/**
	 * Answers the hash code for the given key.
	 */
	private int hashCode(Object key) {
		if (comparer == null)
			return key.hashCode();
		else
			return comparer.hashCode(key);
	}
	
	/**
	 * Compares two keys for equality.
	 */
	private boolean keyEquals(Object a, Object b) {
		if (comparer ==  null)
			return a.equals(b);
		else
			return comparer.equals(a, b);
	}
	/**
	 * Answers an Enumeration on the keys of this Hashtable. The
	 * results of the Enumeration may be affected if the contents
	 * of this Hashtable are modified.
	 *
	 * @return		an Enumeration of the keys of this Hashtable
	 */
	public Enumeration keys() {
		if (elementCount == 0) return emptyEnumerator;
		return new HashEnumerator(true);