Bug 6691 Hierarchy View: Show inherited members + Show members
20011206 (Win2K) - Open a deep hierarchy in a Hierarchy view (I opened the SWT Widget hierarchy) - Select a class that is low in the hierarchy and overrides at least one method from a superclass (I selected Table) - Click on the "Show inherited members" tool, so that you see all implementors of overridden methods (for example, in Table, you can see 3 implementors of callWindowProc(int, int, int) ) - Select more than one method with the same signature (for example, I had all 3 implementors of callWindowProc(int, int, int) selected). - Now selet the "Lock View and Show Members in Hierarchy" tool. You will have multiple versions of the method under each class that implements the method. There should only be one.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/typehierarchy/TypeHierarchyContentProvider.java
* Called for the tree children.
	 * @see ITreeContentProvider#getChildren
	 */	
	public Object[] getChildren(Object element) {
		if (element instanceof IType) {
			IType type= (IType)element;
			IType[] childrenTypes= getTypesInHierarchy(type);
				
			if (fMemberFilter != null) {
				List children= new ArrayList();
				addFilteredMembers(type, children);
				addFilteredTypes(childrenTypes, children);
				return children.toArray();
			} else {
				return childrenTypes;
			}			
		}
		return NO_ELEMENTS;
	}
	
	/*
	 * @see ITreeContentProvider#hasChildren
	 */
	public boolean hasChildren(Object element) {
		if (element instanceof IType) {
			IType type= (IType)element;
			IType[] childrenTypes= getTypesInHierarchy(type);
				
			if (fMemberFilter != null) {
				List children= new ArrayList();