Program: 31901
Project: 31901
Buggy source:
public EvalScoreUDF(String source,String pathModelConfig,String pathColumnConfig,String evalSetName,String scale) throws IOException {
  super(source,pathModelConfig,pathColumnConfig);
  evalConfig=modelConfig.getEvalConfigByName(evalSetName);
  if (evalConfig.getModelsPath() != null) {
    this.columnConfigList=ShifuFileUtils.searchColumnConfig(evalConfig,columnConfigList);
  }
  if (StringUtils.isNotBlank(evalConfig.getDataSet().getHeaderPath())) {
    this.headers=CommonUtils.getHeaders(evalConfig.getDataSet().getHeaderPath(),evalConfig.getDataSet().getHeaderDelimiter(),evalConfig.getDataSet().getSource());
  }
 else {
    String delimiter=StringUtils.isBlank(evalConfig.getDataSet().getHeaderDelimiter()) ? evalConfig.getDataSet().getDataDelimiter() : evalConfig.getDataSet().getHeaderDelimiter();
    String[] fields=CommonUtils.takeFirstLine(evalConfig.getDataSet().getDataPath(),delimiter,evalConfig.getDataSet().getSource());
    if (StringUtils.join(fields,"String_Node_Str").contains(modelConfig.getTargetColumnName())) {
      this.headers=new String[fields.length];
      for (int i=0; i < fields.length; i++) {
        this.headers[i]=CommonUtils.getRelativePigHeaderColumnName(fields[i]);
      }
      log.warn("String_Node_Str");
      log.warn("String_Node_Str");
    }
 else {
      log.warn("String_Node_Str");
      log.warn("String_Node_Str");
      log.warn("String_Node_Str");
      this.headers=new String[fields.length];
      for (int i=0; i < fields.length; i++) {
        this.headers[i]=i + "String_Node_Str";
      }
    }
  }
  this.modelCnt=CommonUtils.getBasicModelsCnt(modelConfig,this.columnConfigList,evalConfig,evalConfig.getDataSet().getSource());
  this.subModelsCnt=CommonUtils.getSubModelsCnt(modelConfig,this.columnConfigList,evalConfig,evalConfig.getDataSet().getSource());
  this.scale=scale;
}

Fixed version (ground truth):
public EvalScoreUDF(String source,String pathModelConfig,String pathColumnConfig,String evalSetName,String scale) throws IOException {
  super(source,pathModelConfig,pathColumnConfig);
  evalConfig=modelConfig.getEvalConfigByName(evalSetName);
  if (evalConfig.getModelsPath() != null) {
    this.columnConfigList=ShifuFileUtils.searchColumnConfig(evalConfig,columnConfigList);
  }
  if (StringUtils.isNotBlank(evalConfig.getDataSet().getHeaderPath())) {
    String delimiter=StringUtils.isBlank(evalConfig.getDataSet().getHeaderDelimiter()) ? evalConfig.getDataSet().getDataDelimiter() : evalConfig.getDataSet().getHeaderDelimiter();
    this.headers=CommonUtils.getHeaders(evalConfig.getDataSet().getHeaderPath(),delimiter,evalConfig.getDataSet().getSource());
  }
 else {
    String delimiter=StringUtils.isBlank(evalConfig.getDataSet().getHeaderDelimiter()) ? evalConfig.getDataSet().getDataDelimiter() : evalConfig.getDataSet().getHeaderDelimiter();
    String[] fields=CommonUtils.takeFirstLine(evalConfig.getDataSet().getDataPath(),delimiter,evalConfig.getDataSet().getSource());
    if (StringUtils.join(fields,"String_Node_Str").contains(modelConfig.getTargetColumnName())) {
      this.headers=new String[fields.length];
      for (int i=0; i < fields.length; i++) {
        this.headers[i]=CommonUtils.getRelativePigHeaderColumnName(fields[i]);
      }
      log.warn("String_Node_Str");
      log.warn("String_Node_Str");
    }
 else {
      log.warn("String_Node_Str");
      log.warn("String_Node_Str");
      log.warn("String_Node_Str");
      this.headers=new String[fields.length];
      for (int i=0; i < fields.length; i++) {
        this.headers[i]=i + "String_Node_Str";
      }
    }
  }
  this.modelCnt=CommonUtils.getBasicModelsCnt(modelConfig,this.columnConfigList,evalConfig,evalConfig.getDataSet().getSource());
  this.subModelsCnt=CommonUtils.getSubModelsCnt(modelConfig,this.columnConfigList,evalConfig,evalConfig.getDataSet().getSource());
  this.scale=scale;
}