Bug 139511 [CommonNavigator] getParent() fails in certain cases
In the implementation of getParents(), clients can sometimes fail to return the correct parent with the override cases taken into account. The attached patch fixes these issues, but should be reviewed by the Team Team to ensure that it does not cause any regressions for their cases.
bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/extensions/SafeDelegateTreeContentProvider.java
contentProvider.dispose();
	}
	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	public boolean equals(Object anObject) {
		return contentProvider.equals(anObject);
	}
	public Object[] getChildren(Object aParentElement) {
		if (aParentElement instanceof TreePath) {
			TreePath tp = (TreePath) aParentElement;
			return getChildren(tp);
		}
		Object[] children = contentProvider.getChildren(aParentElement);
		contentService.rememberContribution(descriptor, children);
		return children;
	}
	public Object[] getElements(Object anInputElement) {
		Object[] elements = contentProvider.getElements(anInputElement);
		contentService.rememberContribution(descriptor, elements);
		return elements;
	}
	public Object getParent(Object anElement) {
		return contentProvider.getParent(anElement);
	}
	public boolean hasChildren(Object anElement) {
		return contentProvider.hasChildren(anElement);
	}