Program: 14476
Project: 14476
Buggy source:
private void parseResponseObject(JSONObject response) throws JSONException {
  mDate=response.getString("String_Node_Str");
  mHighestDayAverage=response.getInt("String_Node_Str");
  mHighestWeekAverage=response.getInt("String_Node_Str");
  mHighestMonth=response.getInt("String_Node_Str");
  mYears=new LinkedList<Year>();
  mAverages=new LinkedList<Average>();
  mWeeks=new LinkedList<Week>();
  JSONArray dataJSON=response.getJSONArray("String_Node_Str");
  if (dataJSON != null) {
    JSONArray fieldsJSON=response.getJSONArray("String_Node_Str");
    try {
      fieldColumnsMapping=new HashMap<String,Integer>(2);
      for (int i=0; i < fieldsJSON.length(); i++) {
        final String field=fieldsJSON.getString(i);
        fieldColumnsMapping.put(field,i);
      }
    }
 catch (    JSONException e) {
      AppLog.e(AppLog.T.STATS,"String_Node_Str",e);
      throw e;
    }
    VisitModel[] visitModels=new VisitModel[dataJSON.length()];
    int viewsColumnIndex=fieldColumnsMapping.get("String_Node_Str");
    int periodColumnIndex=fieldColumnsMapping.get("String_Node_Str");
    for (int i=0; i < dataJSON.length(); i++) {
      try {
        JSONArray currentDayData=dataJSON.getJSONArray(i);
        VisitModel currentVisitModel=new VisitModel();
        currentVisitModel.setPeriod(currentDayData.getString(periodColumnIndex));
        currentVisitModel.setViews(currentDayData.getInt(viewsColumnIndex));
        visitModels[i]=currentVisitModel;
      }
 catch (      JSONException e) {
        AppLog.e(AppLog.T.STATS,"String_Node_Str" + i,e);
      }
    }
    mDayViews=visitModels;
  }
 else {
    mDayViews=null;
  }
  parseYears(response);
  parseAverages(response);
  parseWeeks(response);
}

Fixed version (ground truth):
private void parseResponseObject(JSONObject response) throws JSONException {
  mDate=response.getString("String_Node_Str");
  mHighestDayAverage=response.getInt("String_Node_Str");
  mHighestWeekAverage=response.getInt("String_Node_Str");
  mHighestMonth=response.getInt("String_Node_Str");
  mYears=new LinkedList<>();
  mAverages=new LinkedList<>();
  mWeeks=new LinkedList<>();
  JSONArray dataJSON=response.getJSONArray("String_Node_Str");
  if (dataJSON != null) {
    JSONArray fieldsJSON=response.getJSONArray("String_Node_Str");
    try {
      fieldColumnsMapping=new HashMap<>(2);
      for (int i=0; i < fieldsJSON.length(); i++) {
        final String field=fieldsJSON.getString(i);
        fieldColumnsMapping.put(field,i);
      }
    }
 catch (    JSONException e) {
      AppLog.e(AppLog.T.STATS,"String_Node_Str",e);
      throw e;
    }
    VisitModel[] visitModels=new VisitModel[dataJSON.length()];
    int viewsColumnIndex=fieldColumnsMapping.get("String_Node_Str");
    int periodColumnIndex=fieldColumnsMapping.get("String_Node_Str");
    for (int i=0; i < dataJSON.length(); i++) {
      try {
        JSONArray currentDayData=dataJSON.getJSONArray(i);
        VisitModel currentVisitModel=new VisitModel();
        currentVisitModel.setPeriod(currentDayData.getString(periodColumnIndex));
        currentVisitModel.setViews(currentDayData.getInt(viewsColumnIndex));
        visitModels[i]=currentVisitModel;
      }
 catch (      JSONException e) {
        AppLog.e(AppLog.T.STATS,"String_Node_Str" + i,e);
      }
    }
    mDayViews=visitModels;
  }
 else {
    mDayViews=null;
  }
  parseYears(response);
  parseAverages(response);
  parseWeeks(response);
}