Program: 32179
Project: 32179
Buggy source:
@Override public Tuple exec(Tuple input) throws IOException {
  if (input == null) {
    return null;
  }
  Integer columnId=(Integer)input.get(0);
  DataBag databag=(DataBag)input.get(1);
  String binningDataInfo=(String)input.get(3);
  log.info("String_Node_Str" + columnId.toString());
  ColumnConfig columnConfig=super.columnConfigList.get(columnId);
  AbstractVarStats varstats=AbstractVarStats.getVarStatsInst(modelConfig,columnConfig,valueThreshold);
  varstats.runVarStats(binningDataInfo,databag);
  log.info("String_Node_Str" + columnId.toString());
  KSIVCalculator ksivCalculator=new KSIVCalculator();
  ksivCalculator.calculateKSIV(columnConfig.getBinCountNeg(),columnConfig.getBinCountPos());
  DecimalFormat df=new DecimalFormat("String_Node_Str");
  Tuple tuple=TupleFactory.getInstance().newTuple();
  tuple.append(columnId);
  if (columnConfig.isCategorical()) {
    if (columnConfig.getBinCategory().size() == 0 || columnConfig.getBinCategory().size() > MAX_CATEGORICAL_BINC_COUNT) {
      return null;
    }
    String binCategory="String_Node_Str" + StringUtils.join(columnConfig.getBinCategory(),CalculateStatsUDF.CATEGORY_VAL_SEPARATOR) + "String_Node_Str";
    tuple.append(Base64Utils.base64Encode(binCategory));
  }
 else {
    if (columnConfig.getBinBoundary().size() == 1) {
      return null;
    }
    tuple.append(columnConfig.getBinBoundary().toString());
  }
  tuple.append(columnConfig.getBinCountNeg().toString());
  tuple.append(columnConfig.getBinCountPos().toString());
  tuple.append(columnConfig.getBinAvgScore().toString());
  tuple.append(columnConfig.getBinPosRate().toString());
  tuple.append(df.format(ksivCalculator.getKS()));
  tuple.append(df.format(ksivCalculator.getIV()));
  tuple.append(df.format(columnConfig.getColumnStats().getMax()));
  tuple.append(df.format(columnConfig.getColumnStats().getMin()));
  tuple.append(df.format(columnConfig.getColumnStats().getMean()));
  tuple.append(df.format(columnConfig.getColumnStats().getStdDev()));
  if (columnConfig.isCategorical()) {
    tuple.append("String_Node_Str");
  }
 else {
    tuple.append("String_Node_Str");
  }
  tuple.append((columnConfig.getColumnStats().getMedian()));
  tuple.append(columnConfig.getMissingCount());
  tuple.append(columnConfig.getTotalCount());
  tuple.append(df.format(columnConfig.getMissingPercentage()));
  tuple.append(columnConfig.getBinWeightedNeg().toString());
  tuple.append(columnConfig.getBinWeightedPos().toString());
  return tuple;
}

Fixed version (ground truth):
@Override public Tuple exec(Tuple input) throws IOException {
  if (input == null) {
    return null;
  }
  Integer columnId=(Integer)input.get(0);
  DataBag databag=(DataBag)input.get(1);
  String binningDataInfo=(String)input.get(3);
  log.info("String_Node_Str" + columnId.toString());
  ColumnConfig columnConfig=super.columnConfigList.get(columnId);
  AbstractVarStats varstats=AbstractVarStats.getVarStatsInst(modelConfig,columnConfig,valueThreshold);
  varstats.runVarStats(binningDataInfo,databag);
  log.info("String_Node_Str" + columnId.toString());
  KSIVCalculator ksivCalculator=new KSIVCalculator();
  ksivCalculator.calculateKSIV(columnConfig.getBinCountNeg(),columnConfig.getBinCountPos());
  DecimalFormat df=new DecimalFormat("String_Node_Str");
  Tuple tuple=TupleFactory.getInstance().newTuple();
  tuple.append(columnId);
  if (columnConfig.isCategorical()) {
    if (columnConfig.getBinCategory().size() == 0 || columnConfig.getBinCategory().size() > MAX_CATEGORICAL_BINC_COUNT) {
      return null;
    }
    String binCategory="String_Node_Str" + StringUtils.join(columnConfig.getBinCategory(),CalculateStatsUDF.CATEGORY_VAL_SEPARATOR) + "String_Node_Str";
    tuple.append(Base64Utils.base64Encode(binCategory));
  }
 else {
    if (columnConfig.getBinBoundary().size() == 1) {
      return null;
    }
    tuple.append(columnConfig.getBinBoundary().toString());
  }
  tuple.append(columnConfig.getBinCountNeg().toString());
  tuple.append(columnConfig.getBinCountPos().toString());
  tuple.append(columnConfig.getBinAvgScore().toString());
  tuple.append(columnConfig.getBinPosRate().toString());
  tuple.append(df.format(ksivCalculator.getKS()));
  tuple.append(df.format(ksivCalculator.getIV()));
  tuple.append(df.format(columnConfig.getColumnStats().getMax()));
  tuple.append(df.format(columnConfig.getColumnStats().getMin()));
  tuple.append(df.format(columnConfig.getColumnStats().getMean()));
  tuple.append(df.format(columnConfig.getColumnStats().getStdDev()));
  if (columnConfig.isCategorical()) {
    tuple.append("String_Node_Str");
  }
 else {
    tuple.append("String_Node_Str");
  }
  tuple.append(df.format(columnConfig.getColumnStats().getMedian()));
  tuple.append(columnConfig.getMissingCount());
  tuple.append(columnConfig.getTotalCount());
  tuple.append(df.format(columnConfig.getMissingPercentage()));
  tuple.append(columnConfig.getBinWeightedNeg().toString());
  tuple.append(columnConfig.getBinWeightedPos().toString());
  return tuple;
}