Program: 134157
Project: 134157
Buggy source:
private void fill(){
  for (  StockAbilities a : StockAbilities.values()) {
    if (StockAbilities.isAirbending(a)) {
      if (ProjectKorra.plugin.getConfig().getBoolean("String_Node_Str" + a.name() + "String_Node_Str")) {
        abilities.add(a.name());
        airbendingabilities.add(a.name());
        descriptions.put(a.name(),ProjectKorra.plugin.getConfig().getString("String_Node_Str" + a.name() + "String_Node_Str"));
        if (a == StockAbilities.AirScooter)         harmlessabilities.add(a.name());
        if (a == StockAbilities.AirSpout)         harmlessabilities.add(a.name());
        if (a == StockAbilities.Tornado)         shiftabilities.add(a.name());
        if (a == StockAbilities.AirSuction)         shiftabilities.add(a.name());
        if (a == StockAbilities.AirSwipe)         shiftabilities.add(a.name());
        if (a == StockAbilities.AirBlast)         shiftabilities.add(a.name());
        if (a == StockAbilities.AirBurst)         shiftabilities.add(a.name());
        if (a == StockAbilities.AirShield)         shiftabilities.add(a.name());
        if (a == StockAbilities.Flight)         shiftabilities.add(a.name());
        if (a == StockAbilities.Flight)         subabilities.add(a.name());
        if (a == StockAbilities.Flight)         flightabilities.add(a.name());
      }
    }
 else     if (StockAbilities.isWaterbending(a)) {
      if (ProjectKorra.plugin.getConfig().getBoolean("String_Node_Str" + a.name() + "String_Node_Str")) {
        abilities.add(a.name());
        waterbendingabilities.add(a.name());
        descriptions.put(a.name(),ProjectKorra.plugin.getConfig().getString("String_Node_Str" + a.name() + "String_Node_Str"));
        if (a == StockAbilities.WaterSpout)         harmlessabilities.add(a.name());
        if (a == StockAbilities.HealingWaters)         harmlessabilities.add(a.name());
        if (a == StockAbilities.Surge)         shiftabilities.add(a.name());
        if (a == StockAbilities.Bloodbending)         shiftabilities.add(a.name());
        if (a == StockAbilities.PhaseChange)         shiftabilities.add(a.name());
        if (a == StockAbilities.HealingWaters)         shiftabilities.add(a.name());
        if (a == StockAbilities.OctopusForm)         shiftabilities.add(a.name());
        if (a == StockAbilities.Torrent)         shiftabilities.add(a.name());
        if (a == StockAbilities.WaterManipulation)         shiftabilities.add(a.name());
        if (a == StockAbilities.IceSpike)         shiftabilities.add(a.name());
        if (a == StockAbilities.IceBlast)         shiftabilities.add(a.name());
        if (a == StockAbilities.HealingWaters)         subabilities.add(a.name());
        if (a == StockAbilities.Bloodbending)         subabilities.add(a.name());
        if (a == StockAbilities.PhaseChange)         subabilities.add(a.name());
        if (a == StockAbilities.IceSpike)         subabilities.add(a.name());
        if (a == StockAbilities.IceBlast)         subabilities.add(a.name());
        if (a == StockAbilities.HealingWaters)         healingabilities.add(a.name());
        if (a == StockAbilities.Bloodbending)         bloodabilities.add(a.name());
        if (a == StockAbilities.PhaseChange)         iceabilities.add(a.name());
        if (a == StockAbilities.IceSpike)         iceabilities.add(a.name());
        if (a == StockAbilities.IceBlast)         iceabilities.add(a.name());
      }
    }
 else     if (StockAbilities.isEarthbending(a)) {
      if (ProjectKorra.plugin.getConfig().getBoolean("String_Node_Str" + a.name() + "String_Node_Str")) {
        abilities.add(a.name());
        earthbendingabilities.add(a.name());
        descriptions.put(a.name(),ProjectKorra.plugin.getConfig().getString("String_Node_Str" + a.name() + "String_Node_Str"));
        if (a == StockAbilities.Tremorsense)         harmlessabilities.add(a.name());
        if (a == StockAbilities.RaiseEarth)         shiftabilities.add(a.name());
        if (a == StockAbilities.Collapse)         shiftabilities.add(a.name());
        if (a == StockAbilities.EarthBlast)         shiftabilities.add(a.name());
        if (a == StockAbilities.Shockwave)         shiftabilities.add(a.name());
        if (a == StockAbilities.EarthTunnel)         shiftabilities.add(a.name());
        if (a == StockAbilities.EarthGrab)         shiftabilities.add(a.name());
        if (a == StockAbilities.LavaFlow)         shiftabilities.add(a.name());
        if (a == StockAbilities.MetalClips)         shiftabilities.add(a.name());
        if (a == StockAbilities.EarthSmash)         shiftabilities.add(a.name());
        if (a == StockAbilities.MetalClips)         subabilities.add(a.name());
        if (a == StockAbilities.Extraction)         subabilities.add(a.name());
        if (a == StockAbilities.LavaFlow)         subabilities.add(a.name());
        if (a == StockAbilities.MetalClips)         metalabilities.add(a.name());
        if (a == StockAbilities.Extraction)         metalabilities.add(a.name());
        if (a == StockAbilities.LavaFlow)         lavaabilities.add(a.name());
      }
    }
 else     if (StockAbilities.isFirebending(a)) {
      if (ProjectKorra.plugin.getConfig().getBoolean("String_Node_Str" + a.name() + "String_Node_Str")) {
        abilities.add(a.name());
        firebendingabilities.add(a.name());
        descriptions.put(a.name(),ProjectKorra.plugin.getConfig().getString("String_Node_Str" + a.name() + "String_Node_Str"));
        if (a == StockAbilities.Illumination)         harmlessabilities.add(a.name());
        if (a == StockAbilities.Blaze)         igniteabilities.add(a.name());
        if (a == StockAbilities.FireBlast)         explodeabilities.add(a.name());
        if (a == StockAbilities.Lightning)         explodeabilities.add(a.name());
        if (a == StockAbilities.Combustion)         explodeabilities.add(a.name());
        if (a == StockAbilities.HeatControl)         shiftabilities.add(a.name());
        if (a == StockAbilities.Lightning)         shiftabilities.add(a.name());
        if (a == StockAbilities.FireBlast)         shiftabilities.add(a.name());
        if (a == StockAbilities.Blaze)         shiftabilities.add(a.name());
        if (a == StockAbilities.FireBurst)         shiftabilities.add(a.name());
        if (a == StockAbilities.Lightning)         subabilities.add(a.name());
        if (a == StockAbilities.Combustion)         subabilities.add(a.name());
        if (a == StockAbilities.Lightning)         lightningabilities.add(a.name());
        if (a == StockAbilities.Combustion)         combustionabilities.add(a.name());
      }
    }
 else     if (StockAbilities.isChiBlocking(a)) {
      if (ProjectKorra.plugin.getConfig().getBoolean("String_Node_Str" + a.name() + "String_Node_Str")) {
        abilities.add(a.name());
        chiabilities.add(a.name());
        descriptions.put(a.name(),ProjectKorra.plugin.getConfig().getString("String_Node_Str" + a.name() + "String_Node_Str"));
        if (a == StockAbilities.HighJump)         harmlessabilities.add(a.name());
      }
    }
 else {
      if (ProjectKorra.plugin.getConfig().getBoolean("String_Node_Str" + a.name() + "String_Node_Str")) {
        abilities.add(a.name());
        descriptions.put(a.name(),ProjectKorra.plugin.getConfig().getString("String_Node_Str" + a.name() + "String_Node_Str"));
      }
    }
  }
  for (  AbilityModule ab : ability) {
    boolean succes=true;
    for (    String enabledAbility : abilities) {
      if (enabledAbility.equalsIgnoreCase(ab.getName())) {
        succes=false;
      }
    }
    if (!succes)     continue;
    ab.onThisLoad();
    abilities.add(ab.getName());
    for (    StockAbilities a : StockAbilities.values()) {
      if (a.name().equalsIgnoreCase(ab.getName())) {
        disabledStockAbilities.add(a.name());
      }
    }
    if (ab.getElement() == Element.Air.toString())     airbendingabilities.add(ab.getName());
    if (ab.getElement() == Element.Water.toString())     waterbendingabilities.add(ab.getName());
    if (ab.getElement() == Element.Earth.toString())     earthbendingabilities.add(ab.getName());
    if (ab.getElement() == Element.Fire.toString())     firebendingabilities.add(ab.getName());
    if (ab.getElement() == Element.Chi.toString())     chiabilities.add(ab.getName());
    if (ab.isShiftAbility())     shiftabilities.add(ab.getName());
    if (ab.isHarmlessAbility())     harmlessabilities.add(ab.getName());
    if (ab.getSubElement() != null) {
      subabilities.add(ab.getName());
switch (ab.getSubElement()) {
case Bloodbending:
        bloodabilities.add(ab.getName());
      break;
case Combustion:
    combustionabilities.add(ab.getName());
  break;
case Flight:
flightabilities.add(ab.getName());
break;
case Healing:
healingabilities.add(ab.getName());
break;
case Icebending:
iceabilities.add(ab.getName());
break;
case Lavabending:
lavaabilities.add(ab.getName());
break;
case Lightning:
lightningabilities.add(ab.getName());
break;
case Metalbending:
metalabilities.add(ab.getName());
break;
case Plantbending:
plantabilities.add(ab.getName());
break;
case Sandbending:
sandabilities.add(ab.getName());
break;
case SpiritualProjection:
spiritualprojectionabilities.add(ab.getName());
break;
}
}
descriptions.put(ab.getName(),ab.getDescription());
authors.put(ab.getName(),ab.getAuthor());
}
Collections.sort(airbendingabilities);
Collections.sort(waterbendingabilities);
Collections.sort(earthbendingabilities);
Collections.sort(firebendingabilities);
Collections.sort(chiabilities);
}

Fixed version (ground truth):
private void fill(){
  for (  StockAbilities a : StockAbilities.values()) {
    if (StockAbilities.isAirbending(a)) {
      if (ProjectKorra.plugin.getConfig().getBoolean("String_Node_Str" + a.name() + "String_Node_Str")) {
        abilities.add(a.name());
        airbendingabilities.add(a.name());
        descriptions.put(a.name(),ProjectKorra.plugin.getConfig().getString("String_Node_Str" + a.name() + "String_Node_Str"));
        if (a == StockAbilities.AirScooter)         harmlessabilities.add(a.name());
        if (a == StockAbilities.AirSpout)         harmlessabilities.add(a.name());
        if (a == StockAbilities.Tornado)         shiftabilities.add(a.name());
        if (a == StockAbilities.AirSuction)         shiftabilities.add(a.name());
        if (a == StockAbilities.AirSwipe)         shiftabilities.add(a.name());
        if (a == StockAbilities.AirBlast)         shiftabilities.add(a.name());
        if (a == StockAbilities.AirBurst)         shiftabilities.add(a.name());
        if (a == StockAbilities.AirShield)         shiftabilities.add(a.name());
        if (a == StockAbilities.Flight)         shiftabilities.add(a.name());
        if (a == StockAbilities.Flight)         subabilities.add(a.name());
        if (a == StockAbilities.Flight)         flightabilities.add(a.name());
      }
    }
 else     if (StockAbilities.isWaterbending(a)) {
      if (ProjectKorra.plugin.getConfig().getBoolean("String_Node_Str" + a.name() + "String_Node_Str")) {
        abilities.add(a.name());
        waterbendingabilities.add(a.name());
        descriptions.put(a.name(),ProjectKorra.plugin.getConfig().getString("String_Node_Str" + a.name() + "String_Node_Str"));
        if (a == StockAbilities.WaterSpout)         harmlessabilities.add(a.name());
        if (a == StockAbilities.HealingWaters)         harmlessabilities.add(a.name());
        if (a == StockAbilities.Surge)         shiftabilities.add(a.name());
        if (a == StockAbilities.Bloodbending)         shiftabilities.add(a.name());
        if (a == StockAbilities.PhaseChange)         shiftabilities.add(a.name());
        if (a == StockAbilities.HealingWaters)         shiftabilities.add(a.name());
        if (a == StockAbilities.OctopusForm)         shiftabilities.add(a.name());
        if (a == StockAbilities.Torrent)         shiftabilities.add(a.name());
        if (a == StockAbilities.WaterManipulation)         shiftabilities.add(a.name());
        if (a == StockAbilities.IceSpike)         shiftabilities.add(a.name());
        if (a == StockAbilities.IceBlast)         shiftabilities.add(a.name());
        if (a == StockAbilities.HealingWaters)         subabilities.add(a.name());
        if (a == StockAbilities.Bloodbending)         subabilities.add(a.name());
        if (a == StockAbilities.PhaseChange)         subabilities.add(a.name());
        if (a == StockAbilities.IceSpike)         subabilities.add(a.name());
        if (a == StockAbilities.IceBlast)         subabilities.add(a.name());
        if (a == StockAbilities.HealingWaters)         healingabilities.add(a.name());
        if (a == StockAbilities.Bloodbending)         bloodabilities.add(a.name());
        if (a == StockAbilities.PhaseChange)         iceabilities.add(a.name());
        if (a == StockAbilities.IceSpike)         iceabilities.add(a.name());
        if (a == StockAbilities.IceBlast)         iceabilities.add(a.name());
      }
    }
 else     if (StockAbilities.isEarthbending(a)) {
      if (ProjectKorra.plugin.getConfig().getBoolean("String_Node_Str" + a.name() + "String_Node_Str")) {
        abilities.add(a.name());
        earthbendingabilities.add(a.name());
        descriptions.put(a.name(),ProjectKorra.plugin.getConfig().getString("String_Node_Str" + a.name() + "String_Node_Str"));
        if (a == StockAbilities.Tremorsense)         harmlessabilities.add(a.name());
        if (a == StockAbilities.RaiseEarth)         shiftabilities.add(a.name());
        if (a == StockAbilities.Collapse)         shiftabilities.add(a.name());
        if (a == StockAbilities.EarthBlast)         shiftabilities.add(a.name());
        if (a == StockAbilities.Shockwave)         shiftabilities.add(a.name());
        if (a == StockAbilities.EarthTunnel)         shiftabilities.add(a.name());
        if (a == StockAbilities.EarthGrab)         shiftabilities.add(a.name());
        if (a == StockAbilities.LavaFlow)         shiftabilities.add(a.name());
        if (a == StockAbilities.MetalClips)         shiftabilities.add(a.name());
        if (a == StockAbilities.EarthSmash)         shiftabilities.add(a.name());
        if (a == StockAbilities.MetalClips)         subabilities.add(a.name());
        if (a == StockAbilities.Extraction)         subabilities.add(a.name());
        if (a == StockAbilities.LavaFlow)         subabilities.add(a.name());
        if (a == StockAbilities.MetalClips)         metalabilities.add(a.name());
        if (a == StockAbilities.Extraction)         metalabilities.add(a.name());
        if (a == StockAbilities.LavaFlow)         lavaabilities.add(a.name());
      }
    }
 else     if (StockAbilities.isFirebending(a)) {
      if (ProjectKorra.plugin.getConfig().getBoolean("String_Node_Str" + a.name() + "String_Node_Str")) {
        abilities.add(a.name());
        firebendingabilities.add(a.name());
        descriptions.put(a.name(),ProjectKorra.plugin.getConfig().getString("String_Node_Str" + a.name() + "String_Node_Str"));
        if (a == StockAbilities.Illumination)         harmlessabilities.add(a.name());
        if (a == StockAbilities.Blaze)         igniteabilities.add(a.name());
        if (a == StockAbilities.FireBlast)         explodeabilities.add(a.name());
        if (a == StockAbilities.Lightning)         explodeabilities.add(a.name());
        if (a == StockAbilities.Combustion)         explodeabilities.add(a.name());
        if (a == StockAbilities.HeatControl)         shiftabilities.add(a.name());
        if (a == StockAbilities.Lightning)         shiftabilities.add(a.name());
        if (a == StockAbilities.FireBlast)         shiftabilities.add(a.name());
        if (a == StockAbilities.Blaze)         shiftabilities.add(a.name());
        if (a == StockAbilities.FireBurst)         shiftabilities.add(a.name());
        if (a == StockAbilities.Lightning)         subabilities.add(a.name());
        if (a == StockAbilities.Combustion)         subabilities.add(a.name());
        if (a == StockAbilities.Lightning)         lightningabilities.add(a.name());
        if (a == StockAbilities.Combustion)         combustionabilities.add(a.name());
      }
    }
 else     if (StockAbilities.isChiBlocking(a)) {
      if (ProjectKorra.plugin.getConfig().getBoolean("String_Node_Str" + a.name() + "String_Node_Str")) {
        abilities.add(a.name());
        chiabilities.add(a.name());
        descriptions.put(a.name(),ProjectKorra.plugin.getConfig().getString("String_Node_Str" + a.name() + "String_Node_Str"));
        if (a == StockAbilities.HighJump)         harmlessabilities.add(a.name());
      }
    }
 else {
      if (ProjectKorra.plugin.getConfig().getBoolean("String_Node_Str" + a.name() + "String_Node_Str")) {
        abilities.add(a.name());
        descriptions.put(a.name(),ProjectKorra.plugin.getConfig().getString("String_Node_Str" + a.name() + "String_Node_Str"));
      }
    }
  }
  for (  AbilityModule ab : ability) {
    try {
      boolean succes=true;
      for (      String enabledAbility : abilities) {
        if (enabledAbility.equalsIgnoreCase(ab.getName())) {
          succes=false;
        }
      }
      if (!succes)       continue;
      ab.onThisLoad();
      abilities.add(ab.getName());
      for (      StockAbilities a : StockAbilities.values()) {
        if (a.name().equalsIgnoreCase(ab.getName())) {
          disabledStockAbilities.add(a.name());
        }
      }
      if (ab.getElement() == Element.Air.toString())       airbendingabilities.add(ab.getName());
      if (ab.getElement() == Element.Water.toString())       waterbendingabilities.add(ab.getName());
      if (ab.getElement() == Element.Earth.toString())       earthbendingabilities.add(ab.getName());
      if (ab.getElement() == Element.Fire.toString())       firebendingabilities.add(ab.getName());
      if (ab.getElement() == Element.Chi.toString())       chiabilities.add(ab.getName());
      if (ab.isShiftAbility())       shiftabilities.add(ab.getName());
      if (ab.isHarmlessAbility())       harmlessabilities.add(ab.getName());
      if (ab.getSubElement() != null) {
        subabilities.add(ab.getName());
switch (ab.getSubElement()) {
case Bloodbending:
          bloodabilities.add(ab.getName());
        break;
case Combustion:
      combustionabilities.add(ab.getName());
    break;
case Flight:
  flightabilities.add(ab.getName());
break;
case Healing:
healingabilities.add(ab.getName());
break;
case Icebending:
iceabilities.add(ab.getName());
break;
case Lavabending:
lavaabilities.add(ab.getName());
break;
case Lightning:
lightningabilities.add(ab.getName());
break;
case Metalbending:
metalabilities.add(ab.getName());
break;
case Plantbending:
plantabilities.add(ab.getName());
break;
case Sandbending:
sandabilities.add(ab.getName());
break;
case SpiritualProjection:
spiritualprojectionabilities.add(ab.getName());
break;
}
}
descriptions.put(ab.getName(),ab.getDescription());
authors.put(ab.getName(),ab.getAuthor());
}
 catch (AbstractMethodError e) {
ProjectKorra.log.warning("String_Node_Str" + ab.getName() + "String_Node_Str");
e.printStackTrace();
ab.stop();
abilities.remove(ab.getName());
final AbilityModule skill=ab;
plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin,new Runnable(){
public void run(){
ability.remove(skill);
}
}
,10);
continue;
}
}
Collections.sort(airbendingabilities);
Collections.sort(waterbendingabilities);
Collections.sort(earthbendingabilities);
Collections.sort(firebendingabilities);
Collections.sort(chiabilities);
}