Program: 31898
Project: 31898
Buggy source:
private void validateEvalColumnConfig(EvalConfig evalConfig) throws IOException {
  if (this.columnConfigList == null) {
    return;
  }
  String[] evalColumnNames=null;
  if (StringUtils.isNotBlank(evalConfig.getDataSet().getHeaderPath())) {
    evalColumnNames=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())) {
      String[] dataInFirstLine=CommonUtils.takeFirstTwoLines(evalConfig.getDataSet().getDataPath(),delimiter,evalConfig.getDataSet().getSource())[1];
      if (dataInFirstLine != null && fields.length != dataInFirstLine.length) {
        throw new IllegalArgumentException("String_Node_Str");
      }
      evalColumnNames=new String[fields.length];
      for (int i=0; i < fields.length; i++) {
        evalColumnNames[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");
      evalColumnNames=new String[fields.length];
      for (int i=0; i < fields.length; i++) {
        evalColumnNames[i]=i + "String_Node_Str";
      }
    }
  }
  Set<String> names=new HashSet<String>();
  names.addAll(Arrays.asList(evalColumnNames));
  for (  ColumnConfig config : this.columnConfigList) {
    if (config.isFinalSelect() && !names.contains(config.getColumnName())) {
      throw new IllegalArgumentException("String_Node_Str" + config.getColumnName() + "String_Node_Str"+ evalConfig.getDataSet().getHeaderPath());
    }
  }
  if (StringUtils.isNotBlank(evalConfig.getDataSet().getTargetColumnName()) && !names.contains(evalConfig.getDataSet().getTargetColumnName())) {
    throw new IllegalArgumentException("String_Node_Str" + evalConfig.getDataSet().getTargetColumnName() + "String_Node_Str"+ evalConfig.getDataSet().getHeaderPath());
  }
  if (StringUtils.isNotBlank(evalConfig.getDataSet().getWeightColumnName()) && !names.contains(evalConfig.getDataSet().getWeightColumnName())) {
    throw new IllegalArgumentException("String_Node_Str" + evalConfig.getDataSet().getWeightColumnName() + "String_Node_Str"+ evalConfig.getDataSet().getHeaderPath());
  }
}

Fixed version (ground truth):
private void validateEvalColumnConfig(EvalConfig evalConfig) throws IOException {
  if (this.columnConfigList == null) {
    return;
  }
  String[] evalColumnNames=null;
  if (StringUtils.isNotBlank(evalConfig.getDataSet().getHeaderPath())) {
    String delimiter=StringUtils.isBlank(evalConfig.getDataSet().getHeaderDelimiter()) ? evalConfig.getDataSet().getDataDelimiter() : evalConfig.getDataSet().getHeaderDelimiter();
    evalColumnNames=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())) {
      String[] dataInFirstLine=CommonUtils.takeFirstTwoLines(evalConfig.getDataSet().getDataPath(),delimiter,evalConfig.getDataSet().getSource())[1];
      if (dataInFirstLine != null && fields.length != dataInFirstLine.length) {
        throw new IllegalArgumentException("String_Node_Str");
      }
      evalColumnNames=new String[fields.length];
      for (int i=0; i < fields.length; i++) {
        evalColumnNames[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");
      evalColumnNames=new String[fields.length];
      for (int i=0; i < fields.length; i++) {
        evalColumnNames[i]=i + "String_Node_Str";
      }
    }
  }
  Set<String> names=new HashSet<String>();
  names.addAll(Arrays.asList(evalColumnNames));
  for (  ColumnConfig config : this.columnConfigList) {
    if (config.isFinalSelect() && !names.contains(config.getColumnName())) {
      throw new IllegalArgumentException("String_Node_Str" + config.getColumnName() + "String_Node_Str"+ evalConfig.getDataSet().getHeaderPath());
    }
  }
  if (StringUtils.isNotBlank(evalConfig.getDataSet().getTargetColumnName()) && !names.contains(evalConfig.getDataSet().getTargetColumnName())) {
    throw new IllegalArgumentException("String_Node_Str" + evalConfig.getDataSet().getTargetColumnName() + "String_Node_Str"+ evalConfig.getDataSet().getHeaderPath());
  }
  if (StringUtils.isNotBlank(evalConfig.getDataSet().getWeightColumnName()) && !names.contains(evalConfig.getDataSet().getWeightColumnName())) {
    throw new IllegalArgumentException("String_Node_Str" + evalConfig.getDataSet().getWeightColumnName() + "String_Node_Str"+ evalConfig.getDataSet().getHeaderPath());
  }
}