Program: 92140
Project: 92140
Buggy source:
/** 
 * Handler for the time synch signal.
 * @param signal The incoming signal
 */
@SuppressWarnings("String_Node_Str") @TmfSignalHandler public void currentTimeUpdated(final TmfTimeSynchSignal signal){
  if ((signal.getSource() != this) && (fTrace != null) && (!fTable.isDisposed())) {
    final TmfDataRequest<ITmfEvent> subRequest=new TmfDataRequest<ITmfEvent>(ITmfEvent.class,0,1,ExecutionType.FOREGROUND){
      TmfTimestamp ts=new TmfTimestamp(signal.getCurrentTime());
      @Override public void handleData(      final ITmfEvent event){
        super.handleData(event);
      }
      @Override public void handleCompleted(){
        super.handleCompleted();
        if (fTrace == null) {
          return;
        }
        ITmfTimestamp timestamp=ts;
        if (timestamp.compareTo(fTrace.getStartTime(),true) == -1) {
          timestamp=fTrace.getStartTime();
        }
        if (timestamp.compareTo(fTrace.getEndTime(),true) == 1) {
          timestamp=fTrace.getEndTime();
        }
        final ITmfContext context=fTrace.seekEvent(timestamp);
        final long rank=context.getRank();
        fSelectedRank=rank;
        fTable.getDisplay().asyncExec(new Runnable(){
          @Override public void run(){
            if (fTable.isDisposed()) {
              return;
            }
            int index=(int)rank;
            if (fTable.isDisposed()) {
              return;
            }
            if (fTable.getData(Key.FILTER_OBJ) != null) {
              index=fCache.getFilteredEventIndex(rank) + 1;
            }
            fTable.setSelection(index + 1);
            fRawViewer.selectAndReveal(rank);
          }
        }
);
      }
    }
;
    ((ITmfDataProvider<ITmfEvent>)fTrace).sendRequest(subRequest);
  }
}

Fixed version (ground truth):
/** 
 * Handler for the time synch signal.
 * @param signal The incoming signal
 */
@SuppressWarnings("String_Node_Str") @TmfSignalHandler public void currentTimeUpdated(final TmfTimeSynchSignal signal){
  if ((signal.getSource() != this) && (fTrace != null) && (!fTable.isDisposed())) {
    final TmfDataRequest<ITmfEvent> subRequest=new TmfDataRequest<ITmfEvent>(ITmfEvent.class,0,1,ExecutionType.FOREGROUND){
      TmfTimestamp ts=new TmfTimestamp(signal.getCurrentTime());
      @Override public void handleData(      final ITmfEvent event){
        super.handleData(event);
      }
      @Override public void handleCompleted(){
        super.handleCompleted();
        if (fTrace == null) {
          return;
        }
        ITmfTimestamp timestamp=ts;
        if (timestamp.compareTo(fTrace.getStartTime(),true) == -1) {
          timestamp=fTrace.getStartTime();
        }
        if (timestamp.compareTo(fTrace.getEndTime(),true) == 1) {
          timestamp=fTrace.getEndTime();
        }
        final ITmfContext context=fTrace.seekEvent(timestamp);
        final long rank=context.getRank();
        context.dispose();
        fSelectedRank=rank;
        fTable.getDisplay().asyncExec(new Runnable(){
          @Override public void run(){
            if (fTable.isDisposed()) {
              return;
            }
            int index=(int)rank;
            if (fTable.isDisposed()) {
              return;
            }
            if (fTable.getData(Key.FILTER_OBJ) != null) {
              index=fCache.getFilteredEventIndex(rank) + 1;
            }
            fTable.setSelection(index + 1);
            fRawViewer.selectAndReveal(rank);
          }
        }
);
      }
    }
;
    ((ITmfDataProvider<ITmfEvent>)fTrace).sendRequest(subRequest);
  }
}