Program: 92221
Project: 92221
Buggy source:
@Override void paint(Rectangle bounds,PaintEvent e){
  GC gc=e.gc;
  gc.setBackground(_colors.getColor(TimeGraphColorScheme.BACKGROUND));
  drawBackground(gc,bounds.x,bounds.y,bounds.width,bounds.height);
  if (bounds.width < 2 || bounds.height < 2 || null == _timeProvider) {
    return;
  }
  _idealNameSpace=0;
  int nameSpace=_timeProvider.getNameSpace();
  gc.setBackground(_colors.getBkColor(false,false,true));
  drawBackground(gc,bounds.x,bounds.y,nameSpace,bounds.height);
  drawItems(bounds,_timeProvider,_data._expandedItems,_topIndex,nameSpace,gc);
  long time0=_timeProvider.getTime0();
  long time1=_timeProvider.getTime1();
  long selectedTime=_timeProvider.getSelectedTime();
  double pixelsPerNanoSec=(bounds.width - nameSpace <= RIGHT_MARGIN) ? 0 : (double)(bounds.width - nameSpace - RIGHT_MARGIN) / (time1 - time0);
  int x=bounds.x + nameSpace + (int)Math.round((selectedTime - time0) * pixelsPerNanoSec);
  if (x >= nameSpace && x < bounds.x + bounds.width) {
    gc.setForeground(_colors.getColor(TimeGraphColorScheme.SELECTED_TIME));
    gc.drawLine(x,bounds.y,x,bounds.y + bounds.height);
  }
  if (DRAG_SPLIT_LINE == _dragState) {
    gc.setForeground(_colors.getColor(TimeGraphColorScheme.BLACK));
    gc.drawLine(bounds.x + nameSpace,bounds.y,bounds.x + nameSpace,bounds.y + bounds.height - 1);
  }
 else   if (DRAG_NONE == _dragState && _mouseOverSplitLine && _timeProvider.getNameSpace() > 0) {
    gc.setForeground(_colors.getColor(TimeGraphColorScheme.RED));
    gc.drawLine(bounds.x + nameSpace,bounds.y,bounds.x + nameSpace,bounds.y + bounds.height - 1);
  }
}

Fixed version (ground truth):
@Override void paint(Rectangle bounds,PaintEvent e){
  GC gc=e.gc;
  gc.setBackground(_colors.getColor(TimeGraphColorScheme.BACKGROUND));
  drawBackground(gc,bounds.x,bounds.y,bounds.width,bounds.height);
  if (bounds.width < 2 || bounds.height < 2 || null == _timeProvider) {
    return;
  }
  _idealNameSpace=0;
  int nameSpace=_timeProvider.getNameSpace();
  gc.setBackground(_colors.getBkColor(false,false,true));
  drawBackground(gc,bounds.x,bounds.y,nameSpace,bounds.height);
  drawItems(bounds,_timeProvider,_data._expandedItems,_topIndex,nameSpace,gc);
  long time0=_timeProvider.getTime0();
  long time1=_timeProvider.getTime1();
  long selectedTime=_timeProvider.getSelectedTime();
  double pixelsPerNanoSec=(bounds.width - nameSpace <= RIGHT_MARGIN) ? 0 : (double)(bounds.width - nameSpace - RIGHT_MARGIN) / (time1 - time0);
  int x=bounds.x + nameSpace + (int)((selectedTime - time0) * pixelsPerNanoSec);
  if (x >= nameSpace && x < bounds.x + bounds.width) {
    gc.setForeground(_colors.getColor(TimeGraphColorScheme.SELECTED_TIME));
    gc.drawLine(x,bounds.y,x,bounds.y + bounds.height);
  }
  if (DRAG_SPLIT_LINE == _dragState) {
    gc.setForeground(_colors.getColor(TimeGraphColorScheme.BLACK));
    gc.drawLine(bounds.x + nameSpace,bounds.y,bounds.x + nameSpace,bounds.y + bounds.height - 1);
  }
 else   if (DRAG_NONE == _dragState && _mouseOverSplitLine && _timeProvider.getNameSpace() > 0) {
    gc.setForeground(_colors.getColor(TimeGraphColorScheme.RED));
    gc.drawLine(bounds.x + nameSpace,bounds.y,bounds.x + nameSpace,bounds.y + bounds.height - 1);
  }
}