Program: 32126
Project: 32126
Buggy source:
/** 
 * Scan the stats result and save them into column configure
 * @param scanner
 */
private void scanStatsResult(Scanner scanner){
  while (scanner.hasNextLine()) {
    String[] raw=scanner.nextLine().trim().split("String_Node_Str");
    if (raw.length == 1) {
      continue;
    }
    if (raw.length != 25) {
      log.info("String_Node_Str" + raw.length + "String_Node_Str");
      log.info("String_Node_Str" + Arrays.toString(raw));
    }
    int columnNum=Integer.parseInt(raw[0]);
    try {
      ColumnConfig config=this.columnConfigList.get(columnNum);
      if (config.isCategorical()) {
        String binCategory=Base64Utils.base64Decode(raw[1]);
        config.setBinCategory(CommonUtils.stringToStringList(binCategory,CalculateStatsUDF.CATEGORY_VAL_SEPARATOR));
      }
 else {
        config.setBinBoundary(CommonUtils.stringToDoubleList(raw[1]));
      }
      config.setBinCountNeg(CommonUtils.stringToIntegerList(raw[2]));
      config.setBinCountPos(CommonUtils.stringToIntegerList(raw[3]));
      config.setBinPosCaseRate(CommonUtils.stringToDoubleList(raw[5]));
      config.setBinLength(config.getBinCountNeg().size());
      config.setKs(Double.valueOf(raw[6]));
      config.setIv(Double.valueOf(raw[7]));
      config.setMax(Double.valueOf(raw[8]));
      config.setMin(Double.valueOf(raw[9]));
      config.setMean(Double.valueOf(raw[10]));
      config.setStdDev(Double.valueOf(raw[11]));
      if (raw[12].equals("String_Node_Str")) {
        config.setColumnType(ColumnType.N);
      }
 else {
        config.setColumnType(ColumnType.C);
      }
      config.setMedian(Double.valueOf(raw[13]));
      config.setMissingCnt(Long.valueOf(raw[14]));
      config.setTotalCount(Long.valueOf(raw[15]));
      config.setMissingPercentage(Double.valueOf(raw[16]));
      config.setBinWeightedNeg(CommonUtils.stringToDoubleList(raw[17]));
      config.setBinWeightedPos(CommonUtils.stringToDoubleList(raw[18]));
      config.getColumnStats().setWoe(Double.valueOf(raw[19]));
      config.getColumnStats().setWeightedWoe(Double.valueOf(raw[20]));
      config.getColumnStats().setWeightedKs(Double.valueOf(raw[21]));
      config.getColumnStats().setWeightedIv(Double.valueOf(raw[22]));
      config.getColumnBinning().setBinCountWoe(CommonUtils.stringToDoubleList(raw[23]));
      config.getColumnBinning().setBinWeightedWoe(CommonUtils.stringToDoubleList(raw[24]));
    }
 catch (    Exception e) {
      log.error("String_Node_Str",columnNum,this.columnConfigList.get(columnNum).getColumnName(),e.getMessage());
      continue;
    }
  }
}

Fixed version (ground truth):
/** 
 * Scan the stats result and save them into column configure
 * @param scanner
 */
private void scanStatsResult(Scanner scanner){
  while (scanner.hasNextLine()) {
    String[] raw=scanner.nextLine().trim().split("String_Node_Str");
    if (raw.length == 1) {
      continue;
    }
    if (raw.length != 25) {
      log.info("String_Node_Str" + raw.length + "String_Node_Str");
      log.info("String_Node_Str" + Arrays.toString(raw));
    }
    int columnNum=Integer.parseInt(raw[0]);
    try {
      ColumnConfig config=this.columnConfigList.get(columnNum);
      if (config.isCategorical()) {
        String binCategory=Base64Utils.base64Decode(raw[1]);
        config.setBinCategory(CommonUtils.stringToStringList(binCategory,CalculateStatsUDF.CATEGORY_VAL_SEPARATOR));
      }
 else {
        config.setBinBoundary(CommonUtils.stringToDoubleList(raw[1]));
      }
      config.setBinCountNeg(CommonUtils.stringToIntegerList(raw[2]));
      config.setBinCountPos(CommonUtils.stringToIntegerList(raw[3]));
      config.setBinPosCaseRate(CommonUtils.stringToDoubleList(raw[5]));
      config.setBinLength(config.getBinCountNeg().size());
      config.setKs(parseDouble(raw[6]));
      config.setIv(parseDouble(raw[7]));
      config.setMax(parseDouble(raw[8]));
      config.setMin(parseDouble(raw[9]));
      config.setMean(parseDouble(raw[10]));
      config.setStdDev(parseDouble(raw[11],Double.NaN));
      if (raw[12].equals("String_Node_Str")) {
        config.setColumnType(ColumnType.N);
      }
 else {
        config.setColumnType(ColumnType.C);
      }
      config.setMedian(parseDouble(raw[13]));
      config.setMissingCnt(parseLong(raw[14]));
      config.setTotalCount(parseLong(raw[15]));
      config.setMissingPercentage(parseDouble(raw[16]));
      config.setBinWeightedNeg(CommonUtils.stringToDoubleList(raw[17]));
      config.setBinWeightedPos(CommonUtils.stringToDoubleList(raw[18]));
      config.getColumnStats().setWoe(parseDouble(raw[19]));
      config.getColumnStats().setWeightedWoe(parseDouble(raw[20]));
      config.getColumnStats().setWeightedKs(parseDouble(raw[21]));
      config.getColumnStats().setWeightedIv(parseDouble(raw[22]));
      config.getColumnBinning().setBinCountWoe(CommonUtils.stringToDoubleList(raw[23]));
      config.getColumnBinning().setBinWeightedWoe(CommonUtils.stringToDoubleList(raw[24]));
    }
 catch (    Exception e) {
      log.error("String_Node_Str",columnNum,this.columnConfigList.get(columnNum).getColumnName(),e.getMessage());
      continue;
    }
  }
}