Program: 32047
Project: 32047
Buggy source:
public Scorer(List<BasicML> models,List<ColumnConfig> columnConfigList,String algorithm,ModelConfig modelConfig,Double cutoff){
  this.models=models;
  this.columnConfigList=columnConfigList;
  this.cutoff=cutoff;
  this.alg=algorithm;
  this.modelConfig=modelConfig;
  if (this.columnConfigList != null) {
    int[] inputOutputIndex=DTrainUtils.getInputOutputCandidateCounts(this.columnConfigList);
    int inputNodeCount=inputOutputIndex[0] == 0 ? inputOutputIndex[2] : inputOutputIndex[0];
    int candidateCount=inputOutputIndex[2];
    if (inputNodeCount == candidateCount) {
      this.noVarSelect=true;
    }
 else {
      this.noVarSelect=false;
    }
  }
  if (CommonUtils.isDesicionTreeAlgorithm(alg)) {
    for (    ColumnConfig columnConfig : columnConfigList) {
      if (columnConfig.isCategorical()) {
        Map<String,Integer> map=new HashMap<String,Integer>();
        List<String> categories=columnConfig.getBinCategory();
        for (int i=0; i < categories.size(); i++) {
          map.put(categories.get(i) == null ? "String_Node_Str" : categories.get(i),i);
        }
        this.binCategoryMap.put(columnConfig.getColumnNum(),map);
      }
    }
  }
  if (columnConfigList != null) {
    this.columnMapping=new HashMap<Integer,Integer>(columnConfigList.size(),1f);
    int[] inputOutputIndex=DTrainUtils.getNumericAndCategoricalInputAndOutputCounts(this.columnConfigList);
    boolean isAfterVarSelect=inputOutputIndex[3] == 1 ? true : false;
    int index=0;
    for (int i=0; i < columnConfigList.size(); i++) {
      ColumnConfig columnConfig=columnConfigList.get(i);
      if (isAfterVarSelect) {
        if (!columnConfig.isMeta() && !columnConfig.isTarget() && CommonUtils.isGoodCandidate(columnConfig)) {
          this.columnMapping.put(columnConfig.getColumnNum(),index);
          index+=1;
        }
      }
 else {
        if (columnConfig != null && !columnConfig.isMeta() && !columnConfig.isTarget() && columnConfig.isFinalSelect()) {
          this.columnMapping.put(columnConfig.getColumnNum(),index);
          index+=1;
        }
      }
    }
  }
}

Fixed version (ground truth):
public Scorer(List<BasicML> models,List<ColumnConfig> columnConfigList,String algorithm,ModelConfig modelConfig,Double cutoff){
  if (modelConfig == null || (columnConfigList == null || columnConfigList.size() == 0)) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  this.models=models;
  this.columnConfigList=columnConfigList;
  this.cutoff=cutoff;
  this.alg=algorithm;
  this.modelConfig=modelConfig;
  if (this.columnConfigList != null) {
    int[] inputOutputIndex=DTrainUtils.getInputOutputCandidateCounts(this.columnConfigList);
    int inputNodeCount=inputOutputIndex[0] == 0 ? inputOutputIndex[2] : inputOutputIndex[0];
    int candidateCount=inputOutputIndex[2];
    if (inputNodeCount == candidateCount) {
      this.noVarSelect=true;
    }
 else {
      this.noVarSelect=false;
    }
  }
  if (CommonUtils.isDesicionTreeAlgorithm(alg)) {
    for (    ColumnConfig columnConfig : columnConfigList) {
      if (columnConfig.isCategorical()) {
        Map<String,Integer> map=new HashMap<String,Integer>();
        List<String> categories=columnConfig.getBinCategory();
        for (int i=0; i < categories.size(); i++) {
          map.put(categories.get(i) == null ? "String_Node_Str" : categories.get(i),i);
        }
        this.binCategoryMap.put(columnConfig.getColumnNum(),map);
      }
    }
  }
  if (columnConfigList != null) {
    this.columnMapping=new HashMap<Integer,Integer>(columnConfigList.size(),1f);
    int[] inputOutputIndex=DTrainUtils.getNumericAndCategoricalInputAndOutputCounts(this.columnConfigList);
    boolean isAfterVarSelect=inputOutputIndex[3] == 1 ? true : false;
    int index=0;
    for (int i=0; i < columnConfigList.size(); i++) {
      ColumnConfig columnConfig=columnConfigList.get(i);
      if (isAfterVarSelect) {
        if (!columnConfig.isMeta() && !columnConfig.isTarget() && CommonUtils.isGoodCandidate(columnConfig)) {
          this.columnMapping.put(columnConfig.getColumnNum(),index);
          index+=1;
        }
      }
 else {
        if (columnConfig != null && !columnConfig.isMeta() && !columnConfig.isTarget() && columnConfig.isFinalSelect()) {
          this.columnMapping.put(columnConfig.getColumnNum(),index);
          index+=1;
        }
      }
    }
  }
}