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 CustomHashtable(CustomHashtable table, IElementComparer comparer) {
		this(table.size() * 2, comparer);
		for (int i = table.elementData.length; --i >= 0;) {
			HashMapEntry entry = table.elementData[i];
			while (entry != null) {
				put(entry.key, entry.value);
				entry = entry.next;
			}
		}
	}
	private void computeMaxSize() {
		threshold = (int)(elementData.length * loadFactor);
	}
	/**
	 * Answers if this Hashtable contains the specified object as a key
	 * of one of the key/value pairs.
	 *
	 * @param		key	the object to look for as a key in this Hashtable
	 * @return		true if object is a key in this Hashtable, false otherwise
	 */
	public boolean containsKey(Object key) {
		return getEntry(key) != null;
	}
	/**
	 * Answers an Enumeration on the values of this Hashtable. The
	 * results of the Enumeration may be affected if the contents
	 * of this Hashtable are modified.
	 *
	 * @return		an Enumeration of the values of this Hashtable
	 */