Program: 31959
Project: 31959
Buggy source:
public Tuple exec(Tuple input) throws IOException {
  if (modelRunner == null) {
    List<BasicML> models=CommonUtils.loadBasicModels(modelConfig,this.columnConfigList,evalConfig,evalConfig.getDataSet().getSource(),evalConfig.getGbtConvertToProb());
    modelRunner=new ModelRunner(modelConfig,columnConfigList,this.headers,evalConfig.getDataSet().getDataDelimiter(),models);
    modelCnt=models.size();
  }
  Map<String,String> rawDataMap=CommonUtils.convertDataIntoMap(input,this.headers);
  if (MapUtils.isEmpty(rawDataMap)) {
    return null;
  }
  String tag=rawDataMap.get(modelConfig.getTargetColumnName(evalConfig));
  long startTime=System.currentTimeMillis();
  CaseScoreResult cs=modelRunner.compute(rawDataMap);
  long runInterval=System.currentTimeMillis() - startTime;
  if (cs == null) {
    if (System.currentTimeMillis() % 50 == 0) {
      log.warn("String_Node_Str" + input.toDelimitedString("String_Node_Str"));
    }
    return null;
  }
  Tuple tuple=TupleFactory.getInstance().newTuple();
  tuple.append(StringUtils.trimToEmpty(tag));
  String weight=null;
  if (StringUtils.isNotBlank(evalConfig.getDataSet().getWeightColumnName())) {
    weight=rawDataMap.get(evalConfig.getDataSet().getWeightColumnName());
  }
 else {
    weight="String_Node_Str";
  }
  incrementTagCounters(tag,weight,runInterval);
  tuple.append(weight);
  if (modelConfig.isRegression()) {
    tuple.append(cs.getAvgScore());
    tuple.append(cs.getMaxScore());
    tuple.append(cs.getMinScore());
    tuple.append(cs.getMedianScore());
    for (    Integer score : cs.getScores()) {
      tuple.append(score);
    }
    if (cs.getMedianScore() > maxScore) {
      maxScore=cs.getMedianScore();
    }
    if (cs.getMedianScore() < minScore) {
      minScore=cs.getMedianScore();
    }
  }
 else {
    for (int i=0; i < cs.getScores().size(); i++) {
      tuple.append(cs.getScores().get(i));
    }
  }
  List<String> metaColumns=evalConfig.getScoreMetaColumns(modelConfig);
  if (CollectionUtils.isNotEmpty(metaColumns)) {
    for (    String meta : metaColumns) {
      tuple.append(rawDataMap.get(meta));
    }
  }
  return tuple;
}

Fixed version (ground truth):
public Tuple exec(Tuple input) throws IOException {
  if (modelRunner == null) {
    List<BasicML> models=CommonUtils.loadBasicModels(modelConfig,this.columnConfigList,evalConfig,evalConfig.getDataSet().getSource(),evalConfig.getGbtConvertToProb());
    modelRunner=new ModelRunner(modelConfig,columnConfigList,this.headers,evalConfig.getDataSet().getDataDelimiter(),models);
    modelCnt=models.size();
  }
  Map<String,String> rawDataMap=CommonUtils.convertDataIntoMap(input,this.headers);
  if (MapUtils.isEmpty(rawDataMap)) {
    return null;
  }
  String tag=rawDataMap.get(modelConfig.getTargetColumnName(evalConfig));
  long startTime=System.nanoTime();
  CaseScoreResult cs=modelRunner.compute(rawDataMap);
  long runInterval=(System.nanoTime() - startTime) / 1000L;
  if (cs == null) {
    if (System.currentTimeMillis() % 50 == 0) {
      log.warn("String_Node_Str" + input.toDelimitedString("String_Node_Str"));
    }
    return null;
  }
  Tuple tuple=TupleFactory.getInstance().newTuple();
  tuple.append(StringUtils.trimToEmpty(tag));
  String weight=null;
  if (StringUtils.isNotBlank(evalConfig.getDataSet().getWeightColumnName())) {
    weight=rawDataMap.get(evalConfig.getDataSet().getWeightColumnName());
  }
 else {
    weight="String_Node_Str";
  }
  incrementTagCounters(tag,weight,runInterval);
  tuple.append(weight);
  if (modelConfig.isRegression()) {
    tuple.append(cs.getAvgScore());
    tuple.append(cs.getMaxScore());
    tuple.append(cs.getMinScore());
    tuple.append(cs.getMedianScore());
    for (    Integer score : cs.getScores()) {
      tuple.append(score);
    }
    if (cs.getMedianScore() > maxScore) {
      maxScore=cs.getMedianScore();
    }
    if (cs.getMedianScore() < minScore) {
      minScore=cs.getMedianScore();
    }
  }
 else {
    for (int i=0; i < cs.getScores().size(); i++) {
      tuple.append(cs.getScores().get(i));
    }
  }
  List<String> metaColumns=evalConfig.getScoreMetaColumns(modelConfig);
  if (CollectionUtils.isNotEmpty(metaColumns)) {
    for (    String meta : metaColumns) {
      tuple.append(rawDataMap.get(meta));
    }
  }
  return tuple;
}