Buggy code:
public class DecoratorManager implements IDecoratorManager , ILabelDecorator , ILabelProviderListener { private DecorationScheduler scheduler ; private LightweightDecoratorManager lightweightManager ; private ListenerList listeners = new ListenerList ( ) ; private HashMap cachedFullDecorators = new HashMap ( ) ; private FullDecoratorDefinition [ ] fullDefinitions ; private static final FullDecoratorDefinition [ ] EMPTY_FULL_DEF = new FullDecoratorDefinition [ 0 ] ; private final String PREFERENCE_SEPARATOR = "," ; private final String VALUE_SEPARATOR = ":" ; private final String P_TRUE = "true" ; private final String P_FALSE = "false" ; public DecoratorManager ( ) { } public void addDecorator ( DecoratorDefinition definition ) { } static Collection getDecoratorsFor ( Object element , DecoratorDefinition [ ] enabledDefinitions ) { } public void restoreListeners ( ) { } public void addListener ( ILabelProviderListener listener ) { } public void removeListener ( ILabelProviderListener listener ) { } void fireListeners ( final LabelProviderChangedEvent event ) { } public String decorateText ( String text , Object element ) { } public Image decorateImage ( Image image , Object element ) { } private Object getResourceAdapter ( Object element ) { } public boolean isLabelProperty ( Object element , String property ) { } public boolean isLabelProperty ( Object element , String property , boolean checkAdapted ) { } private boolean isLabelProperty ( Object element , String property , DecoratorDefinition [ ] decorators ) { } private FullDecoratorDefinition [ ] enabledFullDefinitions ( ) { } public void dispose ( ) { } public void clearCaches ( ) { } public void updateForEnablementChange ( ) { } public DecoratorDefinition [ ] getAllDecoratorDefinitions ( ) { } public void labelProviderChanged ( LabelProviderChangedEvent event ) { Object [ ] elements = event . getElements ( ) ; scheduler . clearResults ( ) ; if ( elements == null ) fireListeners ( event ) ; else { for ( int i = 0 ; i < ( elements . length ) ; i ++ ) { Object adapted = getResourceAdapter ( elements [ i ] ) ; <START_BUG> scheduler . queueForDecoration ( elements [ i ] , adapted , true ) ; <END_BUG> } } } private void writeDecoratorsPreference ( ) { } private void writeDecoratorsPreference ( StringBuffer enabledIds , DecoratorDefinition [ ] definitions ) { } private void applyDecoratorsPreference ( ) { } public void shutdown ( ) { } public boolean getEnabled ( String decoratorId ) { } public ILabelDecorator getLabelDecorator ( ) { } public void setEnabled ( String decoratorId , boolean enabled ) throws CoreException { } public IBaseLabelProvider getBaseLabelProvider ( String decoratorId ) { } public ILabelDecorator getLabelDecorator ( String decoratorId ) { } public ILightweightLabelDecorator getLightweightLabelDecorator ( String decoratorId ) { } private DecoratorDefinition getDecoratorDefinition ( String decoratorId ) { } private FullDecoratorDefinition getFullDecoratorDefinition ( String decoratorId ) { } private FullDecoratorDefinition [ ] getDecoratorsFor ( Object element ) { } LightweightDecoratorManager getLightweightManager ( ) { } public void update ( String decoratorId ) { } }

Fix:
scheduler . queueForDecoration ( elements [ i ] , adapted , true , null ) ;