Program: 31816
Project: 31816
Buggy source:
public Scorer(List<BasicML> models,List<ColumnConfig> columnConfigList,String algorithm,ModelConfig modelConfig,Double cutoff){
  if (modelConfig == null) {
    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);
      }
    }
  }
  this.executorManager=new ExecutorManager<MLData>(Math.min(Runtime.getRuntime().availableProcessors(),models.size()));
  Runtime.getRuntime().addShutdownHook(new Thread(new Runnable(){
    @Override public void run(){
      Scorer.this.executorManager.forceShutDown();
    }
  }
));
}

Fixed version (ground truth):
public Scorer(List<BasicML> models,List<ColumnConfig> columnConfigList,String algorithm,ModelConfig modelConfig,Double cutoff){
  if (modelConfig == null) {
    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();
        if (categories == null) {
          continue;
        }
        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);
      }
    }
  }
  this.executorManager=new ExecutorManager<MLData>(Math.min(Runtime.getRuntime().availableProcessors(),models.size()));
  Runtime.getRuntime().addShutdownHook(new Thread(new Runnable(){
    @Override public void run(){
      Scorer.this.executorManager.forceShutDown();
    }
  }
));
}