Program: 39393
Project: 39393
Buggy source:
@Override public void handleMessage(Message msg){
  super.handleMessage(msg);
  chartRecordDoList.clear();
  chartRecordDoList.addAll((List<ChartRecordDo>)msg.obj);
  recordPieAnalysisAdapter.notifyDataSetChanged();
  mTypePieChart.clear();
  xVals1.clear();
  yVals1.clear();
  List<ChartRecordDo> list=(List<ChartRecordDo>)msg.obj;
  ArrayList<Integer> colors=new ArrayList<Integer>();
  allOutOrInMoney=0;
  int i=0;
  for (  ChartRecordDo chartRecordDo : list) {
    allOutOrInMoney+=Math.abs(TextUtil.gwtFormatNum(chartRecordDo.getRecordMoney()));
    yVals1.add(new Entry(Math.abs(new Double(TextUtil.gwtFormatNum(chartRecordDo.getRecordMoney())).floatValue()),i));
    xVals1.add(chartRecordDo.getRecordDesc());
    colors.add(IconTypeUtil.getTypeIconOrColor(chartRecordDo.getIconId(),false));
    i++;
  }
  PieDataSet dataSet=new PieDataSet(yVals1,"String_Node_Str");
  dataSet.setSliceSpace(1f);
  dataSet.setSelectionShift(2f);
  dataSet.setColors(colors);
  PieData data=new PieData(xVals1,dataSet);
  data.setDrawValues(false);
  mTypePieChart.setData(data);
  if (list.size() == 0) {
    mTypePieChart.setCenterText("String_Node_Str" + (pieOut ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str");
    mTypePieChart.setCenterTextColor(Color.RED);
  }
 else {
    mTypePieChart.setCenterTextColor(mainColor);
    mTypePieChart.setCenterText((pieOut ? "String_Node_Str" : "String_Node_Str") + TextUtil.getFormatMoney(allOutOrInMoney));
  }
  mTypePieChart.animateXY(500,500);
}

Fixed version (ground truth):
@Override public void handleMessage(Message msg){
  super.handleMessage(msg);
  chartRecordDoList.clear();
  chartRecordDoList.addAll((List<ChartRecordDo>)msg.obj);
  recordPieAnalysisAdapter.notifyDataSetChanged();
  mTypePieChart.clear();
  xVals1.clear();
  yVals1.clear();
  List<ChartRecordDo> list=(List<ChartRecordDo>)msg.obj;
  ArrayList<Integer> colors=new ArrayList<Integer>();
  allOutOrInMoney=0;
  int i=0;
  double min=Double.MAX_VALUE;
  for (  ChartRecordDo chartRecordDo : list) {
    if (Math.abs(TextUtil.gwtFormatNum(chartRecordDo.getRecordMoney())) < min)     min=Math.abs(TextUtil.gwtFormatNum(chartRecordDo.getRecordMoney()));
    allOutOrInMoney+=Math.abs(TextUtil.gwtFormatNum(chartRecordDo.getRecordMoney()));
    yVals1.add(new Entry(Math.abs(new Double(TextUtil.gwtFormatNum(chartRecordDo.getRecordMoney())).floatValue()),i));
    xVals1.add(chartRecordDo.getRecordDesc());
    colors.add(IconTypeUtil.getTypeIconOrColor(chartRecordDo.getIconId(),false));
    i++;
  }
  PieDataSet dataSet=new PieDataSet(yVals1,"String_Node_Str");
  if (min / allOutOrInMoney > 0.001) {
    dataSet.setSliceSpace(1f);
  }
  dataSet.setSelectionShift(2f);
  dataSet.setColors(colors);
  PieData data=new PieData(xVals1,dataSet);
  data.setDrawValues(false);
  mTypePieChart.setData(data);
  if (list.size() == 0) {
    mTypePieChart.setCenterText("String_Node_Str" + (pieOut ? "String_Node_Str" : "String_Node_Str") + "String_Node_Str");
    mTypePieChart.setCenterTextColor(Color.RED);
  }
 else {
    mTypePieChart.setCenterTextColor(mainColor);
    mTypePieChart.setCenterText((pieOut ? "String_Node_Str" : "String_Node_Str") + TextUtil.getFormatMoney(allOutOrInMoney));
  }
  mTypePieChart.animateXY(500,500);
}