Program: 189778
Project: 189778
Buggy source:
@Override public void selectColumn(final AttributeColumn column){
  if (model != null) {
    if (!(model.getChart() == null && column == null) || (model.getChart() != null && !model.getChart().getColumn().equals(column))) {
      if (column != null && !attributeModel.getGraphTable().hasColumn(column.getId())) {
        throw new IllegalArgumentException("String_Node_Str");
      }
      Thread thread=new Thread(new Runnable(){
        @Override public void run(){
          TimelineChart chart=null;
          Graph graph=Lookup.getDefault().lookup(GraphController.class).getModel().getGraphVisible();
          if (column != null) {
            DynamicType type=(DynamicType)graph.getAttributes().getValue(column.getIndex());
            if (type != null) {
              List<Interval> intervals=type.getIntervals(model.getCustomMin(),model.getCustomMax());
              Number[] xs=new Number[intervals.size() * 2];
              Number[] ys=new Number[intervals.size() * 2];
              int i=0;
              for (              Interval interval : intervals) {
                Number x=(Double)interval.getLow();
                Number y=(Number)interval.getValue();
                xs[i]=x;
                ys[i]=y;
                i++;
                xs[i]=(Double)interval.getHigh();
                ys[i]=y;
                i++;
              }
              if (xs.length > 0) {
                chart=new TimelineChartImpl(column,xs,ys);
              }
            }
          }
          model.setChart(chart);
          fireTimelineModelEvent(new TimelineModelEvent(TimelineModelEvent.EventType.CHART,model,chart));
        }
      }
,"String_Node_Str");
      thread.start();
    }
  }
}

Fixed version (ground truth):
@Override public void selectColumn(final AttributeColumn column){
  if (model != null) {
    if (!(model.getChart() == null && column == null) || (model.getChart() != null && !model.getChart().getColumn().equals(column))) {
      if (column != null && !attributeModel.getGraphTable().hasColumn(column.getId())) {
        throw new IllegalArgumentException("String_Node_Str");
      }
      Thread thread=new Thread(new Runnable(){
        @Override public void run(){
          TimelineChart chart=null;
          Graph graph=Lookup.getDefault().lookup(GraphController.class).getModel().getGraphVisible();
          if (column != null) {
            DynamicType type=(DynamicType)graph.getAttributes().getValue(column.getIndex());
            if (type != null) {
              List<Interval> intervals=type.getIntervals(model.getCustomMin(),model.getCustomMax());
              Number[] xs=new Number[intervals.size() * 2];
              Number[] ys=new Number[intervals.size() * 2];
              int i=0;
              Interval interval;
              for (int j=0; j < intervals.size(); j++) {
                interval=intervals.get(j);
                Number x=(Double)interval.getLow();
                Number y=(Number)interval.getValue();
                xs[i]=x;
                ys[i]=y;
                i++;
                if (j != intervals.size() - 1 && intervals.get(j + 1).getLow() < interval.getHigh()) {
                  xs[i]=(Double)intervals.get(j + 1).getLow();
                }
 else {
                  xs[i]=(Double)interval.getHigh();
                }
                ys[i]=y;
                i++;
              }
              if (xs.length > 0) {
                chart=new TimelineChartImpl(column,xs,ys);
              }
            }
          }
          model.setChart(chart);
          fireTimelineModelEvent(new TimelineModelEvent(TimelineModelEvent.EventType.CHART,model,chart));
        }
      }
,"String_Node_Str");
      thread.start();
    }
  }
}