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/NavigatorContentDescriptorManager.java
private final Map evaluations = new WeakHashMap();
		private final Map evaluationsWithOverrides = new WeakHashMap();
		EvaluationCache(VisibilityAssistant anAssistant) {
			anAssistant.addListener(this);
		}
		protected final Set getDescriptors(Object anElement) {
			return getDescriptors(anElement, true);
		}
		protected final void setDescriptors(Object anElement, Set theDescriptors) {
			setDescriptors(anElement, theDescriptors, true);		
		}
		
		protected final Set getDescriptors(Object anElement, boolean toComputeOverrides) {
			if(toComputeOverrides)
				return (Set) evaluations.get(anElement); 
			return (Set) evaluationsWithOverrides.get(anElement);
		}
		protected final void setDescriptors(Object anElement, Set theDescriptors, boolean toComputeOverrides) {
			if(toComputeOverrides)
				evaluations.put(anElement, theDescriptors);
			else 
				evaluationsWithOverrides.put(anElement, theDescriptors);
		}
		/*
		 * (non-Javadoc)
		 * 
		 * @see org.eclipse.ui.internal.navigator.VisibilityAssistant.VisibilityListener#onVisibilityOrActivationChange()
		 */
		public void onVisibilityOrActivationChange() {
			evaluations.clear();