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/NavigatorContentServiceContentProvider.java
*            The set of overriding extensions that should participate in
	 *            the pipeline chain
	 * @param theCurrentChildren
	 *            The current children to return to the viewer (should be
	 *            modifiable)
	 * @return The set of children to return to the viewer
	 */
	private ContributorTrackingSet pipelineChildren(Object aParentOrPath,
			NavigatorContentExtension[] theOverridingExtensions,
			ContributorTrackingSet theCurrentChildren) {
		IPipelinedTreeContentProvider pipelinedContentProvider;
		NavigatorContentExtension[] overridingExtensions;
		ContributorTrackingSet pipelinedChildren = theCurrentChildren;
		for (int i = 0; i < theOverridingExtensions.length; i++) {
			if (theOverridingExtensions[i].getContentProvider() instanceof IPipelinedTreeContentProvider) {
				pipelinedContentProvider = (IPipelinedTreeContentProvider) theOverridingExtensions[i]
						.getContentProvider();
				
				pipelinedChildren.setContributor((NavigatorContentDescriptor) theOverridingExtensions[i].getDescriptor());				
				pipelinedContentProvider.getPipelinedChildren(aParentOrPath,
						pipelinedChildren);
				
				pipelinedChildren.setContributor(null);
				
				overridingExtensions = theOverridingExtensions[i]
						.getOverridingExtensionsForTriggerPoint(aParentOrPath);
				if (overridingExtensions.length > 0) {
					pipelinedChildren = pipelineChildren(aParentOrPath,
							overridingExtensions, pipelinedChildren);
				}