Program: 19985
Project: 19985
Buggy source:
/** 
 * Lukee Survival-pelitilan tiedot.
 * @param SurvivalMode  Osoitin pelitilaan
 * @param WeaponManager Osoitin WeaponManageriin
 */
public final void readSurvivalMode(SurvivalMode _survivalMode,WeaponManager _weaponManager){
  XmlResourceParser rsm=null;
  rsm=context.getResources().getXml(R.xml.survivalmode);
  int currentWave=0;
  try {
    while (rsm.getEventType() != XmlPullParser.END_DOCUMENT) {
      if (rsm.getEventType() == XmlPullParser.START_TAG) {
        if (rsm.getName().equals("String_Node_Str")) {
          int rankTemp=Integer.parseInt(rsm.getAttributeValue(null,"String_Node_Str")) - 1;
          _survivalMode.enemies.add(new Enemy(_survivalMode.enemyStats[rankTemp][0],_survivalMode.enemyStats[rankTemp][1],_survivalMode.enemyStats[rankTemp][2],_survivalMode.enemyStats[rankTemp][3],_survivalMode.enemyStats[rankTemp][4],rankTemp + 1,_weaponManager));
        }
        if (rsm.getName().equals("String_Node_Str")) {
          String waveTemp=rsm.getAttributeValue(null,"String_Node_Str");
          String[] wave=null;
          wave=waveTemp.split("String_Node_Str");
          int a=0;
          int index=0;
          for (int i=wave.length - 1; i >= 0; --i) {
            if (wave[i] != null && wave[i] != "String_Node_Str") {
              _survivalMode.waves[currentWave][index]=Integer.parseInt(wave[i]);
              ++index;
            }
          }
          ++currentWave;
        }
      }
 else       if (rsm.getEventType() == XmlPullParser.END_TAG) {
      }
      rsm.next();
    }
  }
 catch (  Exception e) {
    e.printStackTrace();
  }
}

Fixed version (ground truth):
/** 
 * Lukee Survival-pelitilan tiedot.
 * @param SurvivalMode  Osoitin pelitilaan
 * @param WeaponManager Osoitin WeaponManageriin
 */
public final void readSurvivalMode(SurvivalMode _survivalMode,WeaponManager _weaponManager){
  XmlResourceParser rsm=null;
  rsm=context.getResources().getXml(R.xml.survivalmode);
  int currentWave=0;
  try {
    while (rsm.getEventType() != XmlPullParser.END_DOCUMENT) {
      if (rsm.getEventType() == XmlPullParser.START_TAG) {
        if (rsm.getName().equals("String_Node_Str")) {
          int rankTemp=Integer.parseInt(rsm.getAttributeValue(null,"String_Node_Str")) - 1;
          _survivalMode.enemies.add(new Enemy(_survivalMode.enemyStats[rankTemp][0],_survivalMode.enemyStats[rankTemp][1],_survivalMode.enemyStats[rankTemp][2],_survivalMode.enemyStats[rankTemp][3],_survivalMode.enemyStats[rankTemp][4],rankTemp + 1,_weaponManager));
        }
        if (rsm.getName().equals("String_Node_Str")) {
          String waveTemp=rsm.getAttributeValue(null,"String_Node_Str");
          String[] wave=null;
          wave=waveTemp.split("String_Node_Str");
          int index=0;
          for (int i=wave.length - 1; i >= 0; --i) {
            if (wave[i] != null && wave[i] != "String_Node_Str") {
              _survivalMode.waves[currentWave][index]=Integer.parseInt(wave[i]);
              ++index;
            }
          }
          ++currentWave;
        }
      }
 else       if (rsm.getEventType() == XmlPullParser.END_TAG) {
      }
      rsm.next();
    }
  }
 catch (  Exception e) {
    e.printStackTrace();
  }
}