Program: 31789
Project: 31789
Buggy source:
public EvalNormUDF(String source,String pathModelConfig,String pathColumnConfig,String evalSetName) throws IOException {
  super(source,pathModelConfig,pathColumnConfig);
  evalConfig=modelConfig.getEvalConfigByName(evalSetName);
  if (StringUtils.isBlank(evalConfig.getDataSet().getHeaderPath())) {
    throw new RuntimeException("String_Node_Str");
  }
  this.headers=CommonUtils.getFinalHeaders(evalConfig);
  Set<String> evalNamesSet=new HashSet<String>(Arrays.asList(this.headers));
  this.outputNames=new ArrayList<String>();
  if (StringUtils.isNotBlank(evalConfig.getDataSet().getTargetColumnName())) {
    outputNames.add(SCHEMA_PREFIX + evalConfig.getDataSet().getTargetColumnName());
  }
 else {
    outputNames.add(SCHEMA_PREFIX + modelConfig.getTargetColumnName());
  }
  if (StringUtils.isNotBlank(evalConfig.getDataSet().getWeightColumnName())) {
    outputNames.add(SCHEMA_PREFIX + evalConfig.getDataSet().getWeightColumnName());
  }
 else {
    outputNames.add(SCHEMA_PREFIX + "String_Node_Str");
  }
  for (  ColumnConfig columnConfig : this.columnConfigList) {
    columnConfigMap.put(columnConfig.getColumnName(),columnConfig);
  }
  List<String> allMetaColumns=evalConfig.getAllMetaColumns(modelConfig);
  for (  String meta : allMetaColumns) {
    if (evalNamesSet.contains(meta)) {
      outputNames.add(meta);
      validMetaSize+=1;
    }
 else {
      throw new RuntimeException("String_Node_Str" + meta + "String_Node_Str");
    }
  }
  int[] inputOutputIndex=DTrainUtils.getNumericAndCategoricalInputAndOutputCounts(this.columnConfigList);
  boolean isAfterVarSelect=(inputOutputIndex[3] == 1);
  for (  ColumnConfig columnConfig : this.columnConfigList) {
    if (isAfterVarSelect) {
      if (columnConfig.isFinalSelect() && (!columnConfig.isMeta() && !columnConfig.isTarget())) {
        if (evalNamesSet.contains(columnConfig.getColumnName())) {
          if (!outputNames.contains(columnConfig.getColumnName())) {
            outputNames.add(columnConfig.getColumnName());
          }
        }
 else {
          throw new RuntimeException("String_Node_Str" + columnConfig.getColumnName() + "String_Node_Str");
        }
      }
    }
 else {
      if (!columnConfig.isMeta() && !columnConfig.isTarget()) {
        if (evalNamesSet.contains(columnConfig.getColumnName())) {
          if (!outputNames.contains(columnConfig.getColumnName())) {
            outputNames.add(columnConfig.getColumnName());
          }
        }
 else {
          throw new RuntimeException("String_Node_Str" + columnConfig.getColumnName() + "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.isBlank(evalConfig.getDataSet().getHeaderPath())) {
    throw new RuntimeException("String_Node_Str");
  }
  this.headers=CommonUtils.getFinalHeaders(evalConfig);
  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.getTargetColumnName());
  }
  if (StringUtils.isNotBlank(evalConfig.getDataSet().getWeightColumnName())) {
    outputNames.add(evalConfig.getDataSet().getWeightColumnName());
  }
 else {
    outputNames.add("String_Node_Str");
  }
  for (  ColumnConfig columnConfig : this.columnConfigList) {
    columnConfigMap.put(columnConfig.getColumnName(),columnConfig);
  }
  List<String> allMetaColumns=evalConfig.getAllMetaColumns(modelConfig);
  for (  String meta : allMetaColumns) {
    if (evalNamesSet.contains(meta)) {
      outputNames.add(meta);
      validMetaSize+=1;
    }
 else {
      throw new RuntimeException("String_Node_Str" + meta + "String_Node_Str");
    }
  }
  int[] inputOutputIndex=DTrainUtils.getNumericAndCategoricalInputAndOutputCounts(this.columnConfigList);
  boolean isAfterVarSelect=(inputOutputIndex[3] == 1);
  for (  ColumnConfig columnConfig : this.columnConfigList) {
    if (isAfterVarSelect) {
      if (columnConfig.isFinalSelect() && (!columnConfig.isMeta() && !columnConfig.isTarget())) {
        if (evalNamesSet.contains(columnConfig.getColumnName())) {
          if (!outputNames.contains(columnConfig.getColumnName())) {
            outputNames.add(columnConfig.getColumnName());
          }
        }
 else {
          throw new RuntimeException("String_Node_Str" + columnConfig.getColumnName() + "String_Node_Str");
        }
      }
    }
 else {
      if (!columnConfig.isMeta() && !columnConfig.isTarget()) {
        if (evalNamesSet.contains(columnConfig.getColumnName())) {
          if (!outputNames.contains(columnConfig.getColumnName())) {
            outputNames.add(columnConfig.getColumnName());
          }
        }
 else {
          throw new RuntimeException("String_Node_Str" + columnConfig.getColumnName() + "String_Node_Str");
        }
      }
    }
  }
}