Bug 136724 [CommonNavigator] Compile error decorations remain until the element is selected
Found in I20060413-0010 Construct a workspace with multiple/related projects that compile without errors (I found this using the org.eclipse.jface.tests.databinding and org.eclipse.jface.examples.databinding projects but any set should do). Open the Project Explorer Expand one of the projects ("A") so you can see classes Close a project that "A" depends on...you should see error decorators as expected Re-open the project. The error decorators remain until the tree element is selected by clicking on it (multi-select won't do it).
bundles/org.eclipse.ui.navigator/src/org/eclipse/ui/internal/navigator/NavigatorContentServiceLabelProvider.java
* @see ILabelProviderListener#labelProviderChanged
     */
    protected void fireLabelProviderChanged(
            final LabelProviderChangedEvent event) {
        Object[] theListeners = getListeners();
        for (int i = 0; i < theListeners.length; ++i) {
            final ILabelProviderListener l = (ILabelProviderListener) theListeners[i];
            SafeRunner.run(new SafeRunnable() {
                public void run() {
                    l.labelProviderChanged(event);
                }
            });
        }
    }
	/* (non-Javadoc)
	 * @see org.eclipse.jface.viewers.ITreePathLabelProvider#updateLabel(org.eclipse.jface.viewers.ViewerLabel, org.eclipse.jface.viewers.TreePath)
	 */
	public void updateLabel(ViewerLabel label, TreePath elementPath) { 
		
		Set contentExtensions = contentService.findContentExtensionsWithPossibleChild(elementPath.getLastSegment());
		for (Iterator itr = contentExtensions.iterator(); itr.hasNext() && (!label.hasNewText() && label.getText() != null); ) {			 
			findUpdateLabel((NavigatorContentExtension)itr.next(), label, elementPath);			 
		}
		if(label.getText() == null)
			label.setText(""); 
	}
	
	/**
	 * Search for text label and take overrides into account. 
	 * Uses only simple ITreeContentProvider.getParent() style semantics.