Program: 31756
Project: 31756
Buggy source:
@Override protected void map(LongWritable key,Text value,Context context) throws IOException, InterruptedException {
  String valueStr=value.toString();
  if (valueStr == null || valueStr.length() == 0 || valueStr.trim().length() == 0) {
    LOG.warn("String_Node_Str");
    return;
  }
  double[] dValues=null;
  if (correlation == Correlation.Pearson) {
    if (!this.dataPurifier.isFilterOut(valueStr)) {
      return;
    }
    dValues=getDoubleArrayByRawArray(CommonUtils.split(valueStr,this.dataSetDelimiter));
  }
 else   if (correlation == Correlation.NormPearson) {
    dValues=getDoubleArray(CommonUtils.split(valueStr,Constants.DEFAULT_DELIMITER));
  }
  count+=1L;
  if (count % 2000L == 0) {
    LOG.info("String_Node_Str",count,Thread.currentThread().getName());
  }
  for (int i=0; i < this.columnConfigList.size(); i++) {
    ColumnConfig columnConfig=this.columnConfigList.get(i);
    if (columnConfig.getColumnFlag() == ColumnFlag.Meta) {
      continue;
    }
    CorrelationWritable cw=this.correlationMap.get(i);
    if (cw == null) {
      cw=new CorrelationWritable();
      this.correlationMap.put(i,cw);
    }
    cw.setColumnIndex(i);
    cw.setCount(cw.getCount() + 1d);
    cw.setSum(cw.getSum() + dValues[i]);
    double squaredSum=dValues[i] * dValues[i];
    cw.setSumSquare(cw.getSumSquare() + squaredSum);
    double[] xySum=cw.getXySum();
    if (xySum == null) {
      xySum=new double[this.columnConfigList.size()];
      cw.setXySum(xySum);
    }
    double[] xxSum=cw.getXxSum();
    if (xxSum == null) {
      xxSum=new double[this.columnConfigList.size()];
      cw.setXxSum(xxSum);
    }
    double[] yySum=cw.getYySum();
    if (yySum == null) {
      yySum=new double[this.columnConfigList.size()];
      cw.setYySum(xxSum);
    }
    double[] adjustCount=cw.getAdjustCount();
    if (adjustCount == null) {
      adjustCount=new double[this.columnConfigList.size()];
      cw.setAdjustCount(adjustCount);
    }
    double[] adjustSum=cw.getAdjustSum();
    if (adjustSum == null) {
      adjustSum=new double[this.columnConfigList.size()];
      cw.setAdjustSum(adjustSum);
    }
    double[] adjustSumSquare=cw.getAdjustSumSquare();
    if (adjustSumSquare == null) {
      adjustSumSquare=new double[this.columnConfigList.size()];
      cw.setAdjustSumSquare(adjustSumSquare);
    }
    for (int j=0; j < this.columnConfigList.size(); j++) {
      ColumnConfig otherColumnConfig=this.columnConfigList.get(j);
      if (otherColumnConfig.getColumnFlag() == ColumnFlag.Meta) {
        continue;
      }
      if (i > j && !this.isComputeAll) {
        continue;
      }
      if (dValues[i] != Double.MIN_VALUE && dValues[j] != Double.MIN_VALUE) {
        xySum[j]+=dValues[i] * dValues[j];
        xxSum[j]+=squaredSum;
        yySum[j]+=dValues[j] * dValues[j];
        adjustCount[j]+=1d;
        adjustSum[j]+=dValues[i];
        adjustSumSquare[j]+=squaredSum;
      }
    }
  }
}

Fixed version (ground truth):
@Override protected void map(LongWritable key,Text value,Context context) throws IOException, InterruptedException {
  String valueStr=value.toString();
  if (valueStr == null || valueStr.length() == 0 || valueStr.trim().length() == 0) {
    LOG.warn("String_Node_Str");
    return;
  }
  double[] dValues=null;
  if (correlation == Correlation.Pearson) {
    if (!this.dataPurifier.isFilterOut(valueStr)) {
      return;
    }
    if (Math.random() >= this.modelConfig.getNormalizeSampleRate()) {
      return;
    }
    dValues=getDoubleArrayByRawArray(CommonUtils.split(valueStr,this.dataSetDelimiter));
  }
 else   if (correlation == Correlation.NormPearson) {
    if (Math.random() >= this.modelConfig.getNormalizeSampleRate()) {
      return;
    }
    dValues=getDoubleArray(CommonUtils.split(valueStr,Constants.DEFAULT_DELIMITER));
  }
  context.getCounter(Constants.SHIFU_GROUP_COUNTER,"String_Node_Str").increment(1L);
  count+=1L;
  if (count % 2000L == 0) {
    LOG.info("String_Node_Str",count,Thread.currentThread().getName());
  }
  for (int i=0; i < this.columnConfigList.size(); i++) {
    ColumnConfig columnConfig=this.columnConfigList.get(i);
    if (columnConfig.getColumnFlag() == ColumnFlag.Meta) {
      continue;
    }
    CorrelationWritable cw=this.correlationMap.get(i);
    if (cw == null) {
      cw=new CorrelationWritable();
      this.correlationMap.put(i,cw);
    }
    cw.setColumnIndex(i);
    cw.setCount(cw.getCount() + 1d);
    cw.setSum(cw.getSum() + dValues[i]);
    double squaredSum=dValues[i] * dValues[i];
    cw.setSumSquare(cw.getSumSquare() + squaredSum);
    double[] xySum=cw.getXySum();
    if (xySum == null) {
      xySum=new double[this.columnConfigList.size()];
      cw.setXySum(xySum);
    }
    double[] xxSum=cw.getXxSum();
    if (xxSum == null) {
      xxSum=new double[this.columnConfigList.size()];
      cw.setXxSum(xxSum);
    }
    double[] yySum=cw.getYySum();
    if (yySum == null) {
      yySum=new double[this.columnConfigList.size()];
      cw.setYySum(yySum);
    }
    double[] adjustCount=cw.getAdjustCount();
    if (adjustCount == null) {
      adjustCount=new double[this.columnConfigList.size()];
      cw.setAdjustCount(adjustCount);
    }
    double[] adjustSum=cw.getAdjustSum();
    if (adjustSum == null) {
      adjustSum=new double[this.columnConfigList.size()];
      cw.setAdjustSum(adjustSum);
    }
    double[] adjustSumSquare=cw.getAdjustSumSquare();
    if (adjustSumSquare == null) {
      adjustSumSquare=new double[this.columnConfigList.size()];
      cw.setAdjustSumSquare(adjustSumSquare);
    }
    for (int j=0; j < this.columnConfigList.size(); j++) {
      ColumnConfig otherColumnConfig=this.columnConfigList.get(j);
      if (otherColumnConfig.getColumnFlag() == ColumnFlag.Meta) {
        continue;
      }
      if (i > j && !this.isComputeAll) {
        continue;
      }
      if (dValues[i] != Double.MIN_VALUE && dValues[j] != Double.MIN_VALUE) {
        xySum[j]+=dValues[i] * dValues[j];
        xxSum[j]+=squaredSum;
        yySum[j]+=dValues[j] * dValues[j];
        adjustCount[j]+=1d;
        adjustSum[j]+=dValues[i];
        adjustSumSquare[j]+=squaredSum;
      }
    }
  }
}