Program: 33641
Project: 33641
Buggy source:
@Override public void parseData() throws BasicModel.FieldNotDefinedException {
  mDataToBind.clear();
  if (mAPIData == null || !mAPIData.isJsonObject()) {
    return;
  }
  JsonObject statsData=mAPIData.getAsJsonObject();
  if (!statsData.has("String_Node_Str") || !statsData.get("String_Node_Str").isJsonObject() || !statsData.has("String_Node_Str")|| !statsData.get("String_Node_Str").isJsonObject()|| !statsData.has("String_Node_Str")|| !statsData.get("String_Node_Str").isJsonObject()) {
    return;
  }
  JsonObject oprs=statsData.get("String_Node_Str").getAsJsonObject();
  JsonObject dprs=statsData.get("String_Node_Str").getAsJsonObject();
  JsonObject ccwms=statsData.get("String_Node_Str").getAsJsonObject();
  for (  Entry<String,JsonElement> stat : oprs.entrySet()) {
    String teamKey="String_Node_Str" + stat.getKey();
    Team team=mDb.getTeamsTable().get(teamKey);
    String teamName=team == null ? "String_Node_Str" + stat.getKey() : team.getNickname();
    double opr=stat.getValue().getAsDouble();
    double dpr=dprs.has(stat.getKey()) ? dprs.get(stat.getKey()).getAsDouble() : 0;
    double ccwm=ccwms.has(stat.getKey()) ? ccwms.get(stat.getKey()).getAsDouble() : 0;
    String displayString=mResources.getString(R.string.stats_format,Stat.displayFormat.format(opr),Stat.displayFormat.format(dpr),Stat.displayFormat.format(ccwm));
    mDataToBind.add(new StatsListElement(teamKey,stat.getKey(),teamName,displayString,opr,dpr,ccwm));
  }
  Collections.sort(mDataToBind,new StatListElementComparator(mStatToSortBy));
  mEventBus.post(new EventStatsEvent(getTopStatsString()));
}

Fixed version (ground truth):
@Override public void parseData() throws BasicModel.FieldNotDefinedException {
  if (mAPIData == null || !mAPIData.isJsonObject()) {
    return;
  }
  mDataToBind.clear();
  JsonObject statsData=mAPIData.getAsJsonObject();
  if (!statsData.has("String_Node_Str") || !statsData.get("String_Node_Str").isJsonObject() || !statsData.has("String_Node_Str")|| !statsData.get("String_Node_Str").isJsonObject()|| !statsData.has("String_Node_Str")|| !statsData.get("String_Node_Str").isJsonObject()) {
    return;
  }
  JsonObject oprs=statsData.get("String_Node_Str").getAsJsonObject();
  JsonObject dprs=statsData.get("String_Node_Str").getAsJsonObject();
  JsonObject ccwms=statsData.get("String_Node_Str").getAsJsonObject();
  for (  Entry<String,JsonElement> stat : oprs.entrySet()) {
    String teamKey="String_Node_Str" + stat.getKey();
    Team team=mDb.getTeamsTable().get(teamKey);
    String teamName=team == null ? "String_Node_Str" + stat.getKey() : team.getNickname();
    double opr=stat.getValue().getAsDouble();
    double dpr=dprs.has(stat.getKey()) ? dprs.get(stat.getKey()).getAsDouble() : 0;
    double ccwm=ccwms.has(stat.getKey()) ? ccwms.get(stat.getKey()).getAsDouble() : 0;
    String displayString=mResources.getString(R.string.stats_format,Stat.displayFormat.format(opr),Stat.displayFormat.format(dpr),Stat.displayFormat.format(ccwm));
    mDataToBind.add(new StatsListElement(teamKey,stat.getKey(),teamName,displayString,opr,dpr,ccwm));
  }
  Collections.sort(mDataToBind,new StatListElementComparator(mStatToSortBy));
  mEventBus.post(new EventStatsEvent(getTopStatsString()));
}