Program: 81801
Project: 81801
Buggy source:
public static void processNBTToModConfigServer(){
  nbtSaveDataServer();
  Weather.dbg("String_Node_Str");
  Weather.dbg("String_Node_Str" + nbtServerData);
  try {
    if (nbtServerData.hasKey("String_Node_Str" + CMD_BTN_COMP_STORM)) {
      ConfigMisc.overcastMode=LIST_STORMSWHEN.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_COMP_STORM)).equalsIgnoreCase("String_Node_Str");
    }
    if (nbtServerData.hasKey("String_Node_Str" + CMD_BTN_COMP_LOCK)) {
      int val=nbtServerData.getInteger("String_Node_Str" + CMD_BTN_COMP_LOCK);
      if (val == 1) {
        ConfigMisc.lockServerWeatherMode=1;
      }
 else       if (val == 0) {
        ConfigMisc.lockServerWeatherMode=0;
      }
 else {
        ConfigMisc.lockServerWeatherMode=-1;
      }
    }
    if (nbtServerData.hasKey("String_Node_Str" + CMD_BTN_COMP_SNOWFALLBLOCKS)) {
      boolean val=nbtServerData.getInteger("String_Node_Str" + CMD_BTN_COMP_SNOWFALLBLOCKS) == 1;
      ConfigSnow.Snow_PerformSnowfall=val;
    }
    if (nbtServerData.hasKey("String_Node_Str" + CMD_BTN_PREF_RATEOFSTORM)) {
      int numDays=nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_RATEOFSTORM);
      if (numDays == 0) {
        ConfigStorm.Player_Storm_Deadly_TimeBetweenInTicks=12000;
        ConfigStorm.Server_Storm_Deadly_TimeBetweenInTicks=12000;
      }
 else       if (numDays == 11) {
        ConfigStorm.Player_Storm_Deadly_TimeBetweenInTicks=-1;
        ConfigStorm.Server_Storm_Deadly_TimeBetweenInTicks=-1;
      }
 else {
        ConfigStorm.Player_Storm_Deadly_TimeBetweenInTicks=24000 * numDays;
        ConfigStorm.Server_Storm_Deadly_TimeBetweenInTicks=24000 * numDays;
      }
    }
    if (nbtServerData.hasKey("String_Node_Str" + CMD_BTN_PREF_CHANCEOFSTORM)) {
      if (LIST_RATES2.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_CHANCEOFSTORM)).equalsIgnoreCase("String_Node_Str")) {
        ConfigStorm.Player_Storm_Deadly_OddsTo1=30;
        ConfigStorm.Server_Storm_Deadly_OddsTo1=30;
      }
 else       if (LIST_RATES2.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_CHANCEOFSTORM)).equalsIgnoreCase("String_Node_Str")) {
        ConfigStorm.Player_Storm_Deadly_OddsTo1=45;
        ConfigStorm.Server_Storm_Deadly_OddsTo1=45;
      }
 else       if (LIST_RATES2.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_CHANCEOFSTORM)).equalsIgnoreCase("String_Node_Str")) {
        ConfigStorm.Player_Storm_Deadly_OddsTo1=60;
        ConfigStorm.Server_Storm_Deadly_OddsTo1=60;
      }
    }
    if (nbtServerData.hasKey("String_Node_Str" + CMD_BTN_PREF_CHANCEOFRAIN)) {
      if (LIST_RATES2.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_CHANCEOFRAIN)).equalsIgnoreCase("String_Node_Str")) {
        ConfigStorm.Player_Storm_Rain_OddsTo1=150;
      }
 else       if (LIST_RATES2.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_CHANCEOFRAIN)).equalsIgnoreCase("String_Node_Str")) {
        ConfigStorm.Player_Storm_Rain_OddsTo1=300;
      }
 else       if (LIST_RATES2.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_CHANCEOFRAIN)).equalsIgnoreCase("String_Node_Str")) {
        ConfigStorm.Player_Storm_Rain_OddsTo1=450;
      }
 else       if (LIST_RATES2.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_CHANCEOFRAIN)).equalsIgnoreCase("String_Node_Str")) {
        ConfigStorm.Player_Storm_Rain_OddsTo1=-1;
      }
    }
    if (nbtServerData.hasKey("String_Node_Str" + CMD_BTN_PREF_BLOCKDESTRUCTION)) {
      ConfigTornado.Storm_Tornado_grabBlocks=LIST_TOGGLE.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_BLOCKDESTRUCTION)).equalsIgnoreCase("String_Node_Str");
    }
    if (nbtServerData.hasKey("String_Node_Str" + CMD_BTN_PREF_TORNADOANDCYCLONES)) {
      ConfigTornado.Storm_NoTornadosOrCyclones=LIST_TOGGLE.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_TORNADOANDCYCLONES)).equalsIgnoreCase("String_Node_Str");
    }
    if (nbtServerData.hasKey("String_Node_Str" + CMD_BTN_PREF_SANDSTORMS)) {
      ConfigSand.Storm_NoSandstorms=LIST_TOGGLE.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_SANDSTORMS)).equalsIgnoreCase("String_Node_Str");
    }
    if (nbtServerData.hasKey("String_Node_Str" + CMD_BTN_PREF_GLOBALRATE)) {
      ConfigStorm.Server_Storm_Deadly_UseGlobalRate=nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_GLOBALRATE) == 0;
      ConfigSand.Sandstorm_UseGlobalServerRate=nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_GLOBALRATE) == 0;
    }
    NBTTagCompound nbtDims=nbtServerData.getCompoundTag("String_Node_Str");
    Weather.dbg("String_Node_Str" + listDimensionsWeather);
    Iterator it=nbtDims.getKeySet().iterator();
    while (it.hasNext()) {
      String tagName=(String)it.next();
      NBTTagInt entry=(NBTTagInt)nbtDims.getTag(tagName);
      String[] vals=tagName.split("String_Node_Str");
      if (vals[2].equals("String_Node_Str")) {
        int dimID=Integer.parseInt(vals[1]);
        if (entry.getInt() == 0) {
          if (listDimensionsWeather.contains(dimID)) {
            listDimensionsWeather.remove(dimID);
          }
        }
 else {
          if (!listDimensionsWeather.contains(dimID)) {
            listDimensionsWeather.add(dimID);
          }
        }
      }
 else       if (vals[2].equals("String_Node_Str")) {
        int dimID=Integer.parseInt(vals[1]);
        if (entry.getInt() == 0) {
          if (listDimensionsClouds.contains(dimID)) {
            listDimensionsClouds.remove(dimID);
          }
        }
 else {
          if (!listDimensionsClouds.contains(dimID)) {
            listDimensionsClouds.add(dimID);
          }
        }
      }
 else       if (vals[2].equals("String_Node_Str")) {
        int dimID=Integer.parseInt(vals[1]);
        if (entry.getInt() == 0) {
          if (listDimensionsStorms.contains(dimID)) {
            listDimensionsStorms.remove(dimID);
          }
        }
 else {
          if (!listDimensionsStorms.contains(dimID)) {
            listDimensionsStorms.add(dimID);
          }
        }
      }
      Weather.dbg("String_Node_Str" + vals[1] + "String_Node_Str"+ vals[2]+ "String_Node_Str"+ entry.getInt());
    }
    Weather.dbg("String_Node_Str" + listDimensionsWeather);
    processListsReverse();
  }
 catch (  Exception ex) {
    ex.printStackTrace();
  }
  for (  IConfigCategory config : Weather.listConfigs) {
    ConfigMod.configLookup.get(config.getRegistryName()).writeConfigFile(true);
  }
}

Fixed version (ground truth):
public static void processNBTToModConfigServer(){
  nbtSaveDataServer();
  Weather.dbg("String_Node_Str");
  Weather.dbg("String_Node_Str" + nbtServerData);
  try {
    if (nbtServerData.hasKey("String_Node_Str" + CMD_BTN_COMP_STORM)) {
      ConfigMisc.overcastMode=LIST_STORMSWHEN.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_COMP_STORM)).equalsIgnoreCase("String_Node_Str");
      ServerTickHandler.syncServerConfigToClient();
    }
    if (nbtServerData.hasKey("String_Node_Str" + CMD_BTN_COMP_LOCK)) {
      int val=nbtServerData.getInteger("String_Node_Str" + CMD_BTN_COMP_LOCK);
      if (val == 1) {
        ConfigMisc.lockServerWeatherMode=1;
      }
 else       if (val == 0) {
        ConfigMisc.lockServerWeatherMode=0;
      }
 else {
        ConfigMisc.lockServerWeatherMode=-1;
      }
    }
    if (nbtServerData.hasKey("String_Node_Str" + CMD_BTN_COMP_SNOWFALLBLOCKS)) {
      boolean val=nbtServerData.getInteger("String_Node_Str" + CMD_BTN_COMP_SNOWFALLBLOCKS) == 1;
      ConfigSnow.Snow_PerformSnowfall=val;
    }
    if (nbtServerData.hasKey("String_Node_Str" + CMD_BTN_PREF_RATEOFSTORM)) {
      int numDays=nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_RATEOFSTORM);
      if (numDays == 0) {
        ConfigStorm.Player_Storm_Deadly_TimeBetweenInTicks=12000;
        ConfigStorm.Server_Storm_Deadly_TimeBetweenInTicks=12000;
      }
 else       if (numDays == 11) {
        ConfigStorm.Player_Storm_Deadly_TimeBetweenInTicks=-1;
        ConfigStorm.Server_Storm_Deadly_TimeBetweenInTicks=-1;
      }
 else {
        ConfigStorm.Player_Storm_Deadly_TimeBetweenInTicks=24000 * numDays;
        ConfigStorm.Server_Storm_Deadly_TimeBetweenInTicks=24000 * numDays;
      }
    }
    if (nbtServerData.hasKey("String_Node_Str" + CMD_BTN_PREF_CHANCEOFSTORM)) {
      if (LIST_RATES2.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_CHANCEOFSTORM)).equalsIgnoreCase("String_Node_Str")) {
        ConfigStorm.Player_Storm_Deadly_OddsTo1=30;
        ConfigStorm.Server_Storm_Deadly_OddsTo1=30;
      }
 else       if (LIST_RATES2.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_CHANCEOFSTORM)).equalsIgnoreCase("String_Node_Str")) {
        ConfigStorm.Player_Storm_Deadly_OddsTo1=45;
        ConfigStorm.Server_Storm_Deadly_OddsTo1=45;
      }
 else       if (LIST_RATES2.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_CHANCEOFSTORM)).equalsIgnoreCase("String_Node_Str")) {
        ConfigStorm.Player_Storm_Deadly_OddsTo1=60;
        ConfigStorm.Server_Storm_Deadly_OddsTo1=60;
      }
    }
    if (nbtServerData.hasKey("String_Node_Str" + CMD_BTN_PREF_CHANCEOFRAIN)) {
      if (LIST_RATES2.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_CHANCEOFRAIN)).equalsIgnoreCase("String_Node_Str")) {
        ConfigStorm.Player_Storm_Rain_OddsTo1=150;
      }
 else       if (LIST_RATES2.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_CHANCEOFRAIN)).equalsIgnoreCase("String_Node_Str")) {
        ConfigStorm.Player_Storm_Rain_OddsTo1=300;
      }
 else       if (LIST_RATES2.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_CHANCEOFRAIN)).equalsIgnoreCase("String_Node_Str")) {
        ConfigStorm.Player_Storm_Rain_OddsTo1=450;
      }
 else       if (LIST_RATES2.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_CHANCEOFRAIN)).equalsIgnoreCase("String_Node_Str")) {
        ConfigStorm.Player_Storm_Rain_OddsTo1=-1;
      }
    }
    if (nbtServerData.hasKey("String_Node_Str" + CMD_BTN_PREF_BLOCKDESTRUCTION)) {
      ConfigTornado.Storm_Tornado_grabBlocks=LIST_TOGGLE.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_BLOCKDESTRUCTION)).equalsIgnoreCase("String_Node_Str");
    }
    if (nbtServerData.hasKey("String_Node_Str" + CMD_BTN_PREF_TORNADOANDCYCLONES)) {
      ConfigTornado.Storm_NoTornadosOrCyclones=LIST_TOGGLE.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_TORNADOANDCYCLONES)).equalsIgnoreCase("String_Node_Str");
    }
    if (nbtServerData.hasKey("String_Node_Str" + CMD_BTN_PREF_SANDSTORMS)) {
      ConfigSand.Storm_NoSandstorms=LIST_TOGGLE.get(nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_SANDSTORMS)).equalsIgnoreCase("String_Node_Str");
    }
    if (nbtServerData.hasKey("String_Node_Str" + CMD_BTN_PREF_GLOBALRATE)) {
      ConfigStorm.Server_Storm_Deadly_UseGlobalRate=nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_GLOBALRATE) == 0;
      ConfigSand.Sandstorm_UseGlobalServerRate=nbtServerData.getInteger("String_Node_Str" + CMD_BTN_PREF_GLOBALRATE) == 0;
    }
    NBTTagCompound nbtDims=nbtServerData.getCompoundTag("String_Node_Str");
    Weather.dbg("String_Node_Str" + listDimensionsWeather);
    Iterator it=nbtDims.getKeySet().iterator();
    while (it.hasNext()) {
      String tagName=(String)it.next();
      NBTTagInt entry=(NBTTagInt)nbtDims.getTag(tagName);
      String[] vals=tagName.split("String_Node_Str");
      if (vals[2].equals("String_Node_Str")) {
        int dimID=Integer.parseInt(vals[1]);
        if (entry.getInt() == 0) {
          if (listDimensionsWeather.contains(dimID)) {
            listDimensionsWeather.remove(dimID);
          }
        }
 else {
          if (!listDimensionsWeather.contains(dimID)) {
            listDimensionsWeather.add(dimID);
          }
        }
      }
 else       if (vals[2].equals("String_Node_Str")) {
        int dimID=Integer.parseInt(vals[1]);
        if (entry.getInt() == 0) {
          if (listDimensionsClouds.contains(dimID)) {
            listDimensionsClouds.remove(dimID);
          }
        }
 else {
          if (!listDimensionsClouds.contains(dimID)) {
            listDimensionsClouds.add(dimID);
          }
        }
      }
 else       if (vals[2].equals("String_Node_Str")) {
        int dimID=Integer.parseInt(vals[1]);
        if (entry.getInt() == 0) {
          if (listDimensionsStorms.contains(dimID)) {
            listDimensionsStorms.remove(dimID);
          }
        }
 else {
          if (!listDimensionsStorms.contains(dimID)) {
            listDimensionsStorms.add(dimID);
          }
        }
      }
      Weather.dbg("String_Node_Str" + vals[1] + "String_Node_Str"+ vals[2]+ "String_Node_Str"+ entry.getInt());
    }
    Weather.dbg("String_Node_Str" + listDimensionsWeather);
    processListsReverse();
  }
 catch (  Exception ex) {
    ex.printStackTrace();
  }
  for (  IConfigCategory config : Weather.listConfigs) {
    ConfigMod.configLookup.get(config.getRegistryName()).writeConfigFile(true);
  }
}