Buggy code:
class ProgressInfoItem extends Composite { static String STOP_IMAGE_KEY = "org.eclipse.ui.internal.progress.PROGRESS_STOP" ; static String DISABLED_STOP_IMAGE_KEY = "org.eclipse.ui.internal.progress.DISABLED_PROGRESS_STOP" ; static String CLEAR_FINISHED_JOB_KEY = "org.eclipse.ui.internal.progress.CLEAR_FINISHED_JOB" ; static String DISABLED_CLEAR_FINISHED_JOB_KEY = "org.eclipse.ui.internal.progress.DISABLED_CLEAR_FINISHED_JOB" ; static String DEFAULT_JOB_KEY = "org.eclipse.ui.internal.progress.PROGRESS_DEFAULT" ; static String DARK_COLOR_KEY = "org.eclipse.ui.internal.progress.PROGRESS_DARK_COLOR" ; JobTreeElement info ; Label progressLabel ; ToolBar actionBar ; ToolItem actionButton ; List taskEntries = new ArrayList ( 0 ) ; private Cursor normalCursor ; private ProgressBar progressBar ; private Label jobImageLabel ; private Color darkColor ; static final int MAX_PROGRESS_HEIGHT = 12 ; static final int MIN_ICON_SIZE = 16 ; private static final String EMPTY_STRING = "" ; interface IndexListener { public void selectPrevious ( ) { } public void selectNext ( ) { } public void select ( ) { } } ProgressInfoItem . IndexListener indexListener ; private int currentIndex ; private boolean selected ; private MouseAdapter mouseListener ; public ProgressInfoItem ( Composite parent , int style , JobTreeElement progressInfo ) { } protected void createChildren ( ) { } private void setLayoutsForNoProgress ( ) { } protected void cancelOrRemove ( ) { } private Image getInfoImage ( ) { } private String getMainTitle ( ) { } protected String getJobNameAndStatus ( ) { } String getJobInfoFinishedString ( Job job , boolean withTime ) { } private String getTimeString ( ) { } void refresh ( ) { if ( isDisposed ( ) ) return ; progressLabel . setText ( getMainTitle ( ) ) ; int percentDone = getPercentDone ( ) ; if ( isRunning ( ) ) { if ( ( progressBar ) == null ) createProgressBar ( ( percentDone == ( IProgressMonitor . UNKNOWN ) ? SWT . INDETERMINATE : SWT . NONE ) ) ; if ( ( ( percentDone >= 0 ) && ( percentDone <= 100 ) ) && ( percentDone != ( progressBar . getSelection ( ) ) ) ) progressBar . setSelection ( percentDone ) ; } else if ( isCompleted ( ) ) { if ( ( progressBar ) != null ) { progressBar . dispose ( ) ; progressBar = null ; } setLayoutsForNoProgress ( ) ; actionButton . setImage ( JFaceResources . getImage ( ProgressInfoItem . CLEAR_FINISHED_JOB_KEY ) ) ; actionButton . setDisabledImage ( JFaceResources . getImage ( ProgressInfoItem . DISABLED_CLEAR_FINISHED_JOB_KEY ) ) ; } JobInfo [ ] infos = getJobInfos ( ) ; int taskCount = 0 ; for ( int i = 0 ; i < ( infos . length ) ; i ++ ) { JobInfo jobInfo = infos [ i ] ; if ( jobInfo . hasTaskInfo ( ) ) { String taskString = jobInfo . getTaskInfo ( ) . getTaskName ( ) ; String subTaskString = null ; Object [ ] jobChildren = jobInfo . getChildren ( ) ; if ( ( jobChildren . length ) > 0 ) subTaskString = ( ( JobTreeElement ) ( jobChildren [ 0 ] ) ) . getDisplayString ( ) ; if ( subTaskString != null ) { if ( taskString == null ) taskString = subTaskString ; else taskString = NLS . bind ( JobInfo_DoneNoProgressMessage , taskString , subTaskString ) ; } if ( taskString != null ) { setLinkText ( infos [ i ] . getJob ( ) , taskString , taskCount ) ; taskCount ++ ; } } else { Job job = jobInfo . getJob ( ) ; <START_BUG> if ( ( job . getState ( ) ) == ( Job . NONE ) ) { <END_BUG> IStatus result = job . getResult ( ) ; String message = ProgressInfoItem . EMPTY_STRING ; if ( result != null ) message = result . getMessage ( ) ; setLinkText ( job , message , i ) ; taskCount ++ ; } } } if ( taskCount < ( taskEntries . size ( ) ) ) { for ( int i = taskCount ; i < ( taskEntries . size ( ) ) ; i ++ ) { ( ( org . eclipse . swt . widgets . Link ) ( taskEntries . get ( i ) ) ) . dispose ( ) ; } taskEntries = taskEntries . subList ( 0 , taskCount ) ; } } private boolean isCompleted ( ) { } private JobInfo [ ] getJobInfos ( ) { } private boolean isRunning ( ) { } private int getPercentDone ( ) { } void remap ( JobTreeElement element ) { } private void setToolBarImages ( ) { } void createProgressBar ( int style ) { } void setLinkText ( Job linkJob , String taskString , int index ) { } public void setColor ( int i ) { } private void setAllForegrounds ( Color color ) { } private void setAllBackgrounds ( Color color ) { } void setButtonFocus ( ) { } void selectWidgets ( boolean select ) { } void setIndexListener ( ProgressInfoItem . IndexListener indexListener ) { } boolean isSelected ( ) { } }

Fix:
if ( ( job . getResult ( ) ) != null ) {