Program: 81802
Project: 81802
Buggy source:
public void nbtSyncFromServer(NBTTagCompound parNBT){
  String command=parNBT.getString("String_Node_Str");
  if (command.equals("String_Node_Str")) {
    NBTTagCompound stormNBT=parNBT.getCompoundTag("String_Node_Str");
    long ID=stormNBT.getLong("String_Node_Str");
    Weather.dbg("String_Node_Str" + ID);
    EnumWeatherObjectType weatherObjectType=EnumWeatherObjectType.get(stormNBT.getInteger("String_Node_Str"));
    WeatherObject wo=null;
    if (weatherObjectType == EnumWeatherObjectType.CLOUD) {
      wo=new StormObject(ClientTickHandler.weatherManager);
    }
 else     if (weatherObjectType == EnumWeatherObjectType.SAND) {
      wo=new WeatherObjectSandstorm(ClientTickHandler.weatherManager);
    }
    wo.getNbtCache().setNewNBT(stormNBT);
    wo.nbtSyncFromServer();
    wo.getNbtCache().updateCacheFromNew();
    addStormObject(wo);
  }
 else   if (command.equals("String_Node_Str")) {
    NBTTagCompound stormNBT=parNBT.getCompoundTag("String_Node_Str");
    long ID=stormNBT.getLong("String_Node_Str");
    WeatherObject so=lookupStormObjectsByID.get(ID);
    if (so != null) {
      removeStormObject(ID);
    }
 else {
      Weather.dbg("String_Node_Str" + ID);
    }
  }
 else   if (command.equals("String_Node_Str")) {
    NBTTagCompound stormNBT=parNBT.getCompoundTag("String_Node_Str");
    long ID=stormNBT.getLong("String_Node_Str");
    WeatherObject so=lookupStormObjectsByID.get(ID);
    if (so != null) {
      so.getNbtCache().setNewNBT(stormNBT);
      so.nbtSyncFromServer();
      so.getNbtCache().updateCacheFromNew();
    }
 else {
      Weather.dbg("String_Node_Str" + ID + "String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str")) {
    Weather.dbg("String_Node_Str");
    NBTTagCompound stormNBT=parNBT.getCompoundTag("String_Node_Str");
    VolcanoObject so=new VolcanoObject(ClientTickHandler.weatherManager);
    so.nbtSyncFromServer(stormNBT);
    addVolcanoObject(so);
  }
 else   if (command.equals("String_Node_Str")) {
    Weather.dbg("String_Node_Str");
    NBTTagCompound stormNBT=parNBT.getCompoundTag("String_Node_Str");
    long ID=stormNBT.getLong("String_Node_Str");
    VolcanoObject so=lookupVolcanoes.get(ID);
    if (so != null) {
      removeVolcanoObject(ID);
    }
  }
 else   if (command.equals("String_Node_Str")) {
    Weather.dbg("String_Node_Str");
    NBTTagCompound stormNBT=parNBT.getCompoundTag("String_Node_Str");
    long ID=stormNBT.getLong("String_Node_Str");
    VolcanoObject so=lookupVolcanoes.get(ID);
    if (so != null) {
      so.nbtSyncFromServer(stormNBT);
    }
 else {
      Weather.dbg("String_Node_Str" + ID);
    }
  }
 else   if (command.equals("String_Node_Str")) {
    NBTTagCompound nbt=parNBT.getCompoundTag("String_Node_Str");
    windMan.nbtSyncFromServer(nbt);
  }
 else   if (command.equals("String_Node_Str")) {
    NBTTagCompound nbt=parNBT.getCompoundTag("String_Node_Str");
    int posXS=nbt.getInteger("String_Node_Str");
    int posYS=nbt.getInteger("String_Node_Str");
    int posZS=nbt.getInteger("String_Node_Str");
    boolean custom=nbt.getBoolean("String_Node_Str");
    double posX=(double)posXS;
    double posY=(double)posYS;
    double posZ=(double)posZS;
    Entity ent=null;
    if (!custom) {
      ent=new EntityLightningBolt(getWorld(),posX,posY,posZ);
    }
 else {
      ent=new EntityLightningBoltCustom(getWorld(),posX,posY,posZ);
    }
    ent.serverPosX=posXS;
    ent.serverPosY=posYS;
    ent.serverPosZ=posZS;
    ent.rotationYaw=0.0F;
    ent.rotationPitch=0.0F;
    ent.setEntityId(nbt.getInteger("String_Node_Str"));
    getWorld().addWeatherEffect(ent);
  }
 else   if (command.equals("String_Node_Str")) {
    isVanillaRainActiveOnServer=parNBT.getBoolean("String_Node_Str");
  }
}

Fixed version (ground truth):
public void nbtSyncFromServer(NBTTagCompound parNBT){
  String command=parNBT.getString("String_Node_Str");
  if (command.equals("String_Node_Str")) {
    NBTTagCompound stormNBT=parNBT.getCompoundTag("String_Node_Str");
    long ID=stormNBT.getLong("String_Node_Str");
    Weather.dbg("String_Node_Str" + ID);
    EnumWeatherObjectType weatherObjectType=EnumWeatherObjectType.get(stormNBT.getInteger("String_Node_Str"));
    WeatherObject wo=null;
    if (weatherObjectType == EnumWeatherObjectType.CLOUD) {
      wo=new StormObject(ClientTickHandler.weatherManager);
    }
 else     if (weatherObjectType == EnumWeatherObjectType.SAND) {
      wo=new WeatherObjectSandstorm(ClientTickHandler.weatherManager);
    }
    wo.getNbtCache().setNewNBT(stormNBT);
    wo.nbtSyncFromServer();
    wo.getNbtCache().updateCacheFromNew();
    addStormObject(wo);
  }
 else   if (command.equals("String_Node_Str")) {
    NBTTagCompound stormNBT=parNBT.getCompoundTag("String_Node_Str");
    long ID=stormNBT.getLong("String_Node_Str");
    WeatherObject so=lookupStormObjectsByID.get(ID);
    if (so != null) {
      removeStormObject(ID);
    }
 else {
      Weather.dbg("String_Node_Str" + ID);
    }
  }
 else   if (command.equals("String_Node_Str")) {
    NBTTagCompound stormNBT=parNBT.getCompoundTag("String_Node_Str");
    long ID=stormNBT.getLong("String_Node_Str");
    WeatherObject so=lookupStormObjectsByID.get(ID);
    if (so != null) {
      so.getNbtCache().setNewNBT(stormNBT);
      so.nbtSyncFromServer();
      so.getNbtCache().updateCacheFromNew();
    }
 else {
      Weather.dbg("String_Node_Str" + ID + "String_Node_Str");
    }
  }
 else   if (command.equals("String_Node_Str")) {
    Weather.dbg("String_Node_Str");
    NBTTagCompound stormNBT=parNBT.getCompoundTag("String_Node_Str");
    VolcanoObject so=new VolcanoObject(ClientTickHandler.weatherManager);
    so.nbtSyncFromServer(stormNBT);
    addVolcanoObject(so);
  }
 else   if (command.equals("String_Node_Str")) {
    Weather.dbg("String_Node_Str");
    NBTTagCompound stormNBT=parNBT.getCompoundTag("String_Node_Str");
    long ID=stormNBT.getLong("String_Node_Str");
    VolcanoObject so=lookupVolcanoes.get(ID);
    if (so != null) {
      removeVolcanoObject(ID);
    }
  }
 else   if (command.equals("String_Node_Str")) {
    Weather.dbg("String_Node_Str");
    NBTTagCompound stormNBT=parNBT.getCompoundTag("String_Node_Str");
    long ID=stormNBT.getLong("String_Node_Str");
    VolcanoObject so=lookupVolcanoes.get(ID);
    if (so != null) {
      so.nbtSyncFromServer(stormNBT);
    }
 else {
      Weather.dbg("String_Node_Str" + ID);
    }
  }
 else   if (command.equals("String_Node_Str")) {
    NBTTagCompound nbt=parNBT.getCompoundTag("String_Node_Str");
    windMan.nbtSyncFromServer(nbt);
  }
 else   if (command.equals("String_Node_Str")) {
    NBTTagCompound nbt=parNBT.getCompoundTag("String_Node_Str");
    int posXS=nbt.getInteger("String_Node_Str");
    int posYS=nbt.getInteger("String_Node_Str");
    int posZS=nbt.getInteger("String_Node_Str");
    boolean custom=nbt.getBoolean("String_Node_Str");
    double posX=(double)posXS;
    double posY=(double)posYS;
    double posZ=(double)posZS;
    Entity ent=null;
    if (!custom) {
      ent=new EntityLightningBolt(getWorld(),posX,posY,posZ);
    }
 else {
      ent=new EntityLightningBoltCustom(getWorld(),posX,posY,posZ);
    }
    ent.serverPosX=posXS;
    ent.serverPosY=posYS;
    ent.serverPosZ=posZS;
    ent.rotationYaw=0.0F;
    ent.rotationPitch=0.0F;
    ent.setEntityId(nbt.getInteger("String_Node_Str"));
    getWorld().addWeatherEffect(ent);
  }
 else   if (command.equals("String_Node_Str")) {
    isVanillaRainActiveOnServer=parNBT.getBoolean("String_Node_Str");
    isVanillaThunderActiveOnServer=parNBT.getBoolean("String_Node_Str");
  }
}