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
ITreeContentProvider cp = (ITreeContentProvider) getContentProvider();
		if(cp == null)
			return false;
		
		if(cp.hasChildren(element)){
			ViewerFilter[] filters = getFilters();
			if(filters.length > 0){
				Object[] result = getRawChildren(element);
				if (filters.length >0) {
					for (int i = 0; i < filters.length; i++) {
						ViewerFilter filter = filters[i];
						result = filter.filter(this, element, result);
						if(result.length == 0)
							return false;
					}
					return true;
				}
			}
			return true;
		}	
		
		return false;
	}
	
	protected void labelProviderChanged() {
		
		Control tree = getControl();
		tree.setRedraw(false);
		
		internalRefresh(tree, getRoot(), false, true);