Bug 261031 [CommonNavigator] IPipelinedContentProvider getParent() returning the suggested parent is not ignored
"Link with Editor" neglects to expand the tree in Project Explorer for not C/C++ file types after reopening eclipse. My case: 1. Create a new subfolder in C/C++ project. Place there a new file with non-C/C++ extension like hello.txt. Open the file with text editor. 2. Quit and reenter eclipse. It should open hello.txt in editor at that point. 3. In Project Explorer, push button "Link with Editor". I expect the tree to be expanded and the cursor placed on hello.txt at that point. As a side note, the button is actually named "Link open editors with content in the Navigator" (???). Well, that appears to be absolutely true and if you open Navigator it is linked. But what about linking in Project Explorer?
bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentServiceContentProvider.java
if (theOverridingExtensions[i].internalGetContentProvider().isPipelined()) {
				pipelinedContentProvider = (IPipelinedTreeContentProvider) theOverridingExtensions[i]
						.internalGetContentProvider();
				aSuggestedParent = pipelinedContentProvider.getPipelinedParent(anInputElement, aSuggestedParent);
				overridingExtensions = theOverridingExtensions[i]
						.getOverridingExtensionsForTriggerPoint(anInputElement);
				if (overridingExtensions.length > 0) {
					aSuggestedParent = pipelineParent(anInputElement, overridingExtensions, aSuggestedParent);
				}
			}
		}
		return aSuggestedParent != null ? aSuggestedParent : theCurrentParent;
	}
	/**
	 * Calculate hasChildren for both an element or a path.
	 * 
	 *  If any of the first class NCEs don't implement the IPipelinedTreeContentProviderHasChildren 
	 *  and they return true, then we have to use that as the value, as we are obliged to take
	 *  the union of the non-pipelined calls. This may result in a false positive hasChildren
	 *  indication if the pipeline mechanism does not actually contribute children later.
	 *  For pipelined calls, we simply ask the pipelined content provider about the children
	 *  and they can override this as they would in the case where they are providing the objects.
	 */
	public boolean hasChildren(Object anElementOrPath) {
		Object anElement = internalAsElement(anElementOrPath);
		Set enabledExtensions = contentService.findContentExtensionsByTriggerPoint(anElement);
		NavigatorContentExtension ext;
		boolean suggestedHasChildren = false;
		for (Iterator itr = enabledExtensions.iterator(); itr.hasNext();) {
			ext = (NavigatorContentExtension) itr.next();