Program: 31899
Project: 31899
Buggy source:
public EvalNormUDF(String source,String pathModelConfig,String pathColumnConfig,String evalSetName) throws IOException {
  super(source,pathModelConfig,pathColumnConfig);
  evalConfig=modelConfig.getEvalConfigByName(evalSetName);
  if (StringUtils.isNotBlank(evalConfig.getDataSet().getHeaderPath())) {
    this.headers=CommonUtils.getHeaders(evalConfig.getDataSet().getHeaderPath(),evalConfig.getDataSet().getHeaderDelimiter(),evalConfig.getDataSet().getSource());
    Set<String> evalNamesSet=new HashSet<String>(Arrays.asList(this.headers));
    this.outputNames=new ArrayList<String>();
    if (StringUtils.isNotBlank(evalConfig.getDataSet().getTargetColumnName())) {
      outputNames.add(evalConfig.getDataSet().getTargetColumnName());
    }
 else {
      outputNames.add(modelConfig.getWeightColumnName());
    }
    if (StringUtils.isNotBlank(evalConfig.getDataSet().getWeightColumnName())) {
      outputNames.add(evalConfig.getDataSet().getWeightColumnName());
    }
 else {
      outputNames.add(SCHEMA_PREFIX + "String_Node_Str");
    }
    for (    ColumnConfig columnConfig : this.columnConfigList) {
      if (columnConfig.isFinalSelect()) {
        if (!evalNamesSet.contains(columnConfig.getColumnName())) {
          log.error("String_Node_Str" + columnConfig.getColumnName() + "String_Node_Str");
          throw new RuntimeException("String_Node_Str" + columnConfig.getColumnName() + "String_Node_Str");
        }
 else {
          outputNames.add(columnConfig.getColumnName());
        }
      }
    }
  }
 else {
    log.error("String_Node_Str");
    throw new RuntimeException("String_Node_Str");
  }
}

Fixed version (ground truth):
public EvalNormUDF(String source,String pathModelConfig,String pathColumnConfig,String evalSetName) throws IOException {
  super(source,pathModelConfig,pathColumnConfig);
  evalConfig=modelConfig.getEvalConfigByName(evalSetName);
  if (StringUtils.isNotBlank(evalConfig.getDataSet().getHeaderPath())) {
    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";
        }
      }
    }
    Set<String> evalNamesSet=new HashSet<String>(Arrays.asList(this.headers));
    this.outputNames=new ArrayList<String>();
    if (StringUtils.isNotBlank(evalConfig.getDataSet().getTargetColumnName())) {
      outputNames.add(evalConfig.getDataSet().getTargetColumnName());
    }
 else {
      outputNames.add(modelConfig.getWeightColumnName());
    }
    if (StringUtils.isNotBlank(evalConfig.getDataSet().getWeightColumnName())) {
      outputNames.add(evalConfig.getDataSet().getWeightColumnName());
    }
 else {
      outputNames.add(SCHEMA_PREFIX + "String_Node_Str");
    }
    for (    ColumnConfig columnConfig : this.columnConfigList) {
      if (columnConfig.isFinalSelect()) {
        if (!evalNamesSet.contains(columnConfig.getColumnName())) {
          log.error("String_Node_Str" + columnConfig.getColumnName() + "String_Node_Str");
          throw new RuntimeException("String_Node_Str" + columnConfig.getColumnName() + "String_Node_Str");
        }
 else {
          outputNames.add(columnConfig.getColumnName());
        }
      }
    }
  }
 else {
    log.error("String_Node_Str");
    throw new RuntimeException("String_Node_Str");
  }
}