Program: 81897
Project: 81897
Buggy source:
public void readFromFile(){
  NBTTagCompound rtsNBT=new NBTTagCompound();
  String saveFolder=CoroUtilFile.getWorldSaveFolderPath() + CoroUtilFile.getWorldFolderName() + "String_Node_Str"+ File.separator;
  boolean readFail=false;
  try {
    if ((new File(saveFolder + "String_Node_Str" + dim+ "String_Node_Str")).exists()) {
      rtsNBT=CompressedStreamTools.readCompressed(new FileInputStream(saveFolder + "String_Node_Str" + dim+ "String_Node_Str"));
    }
 else {
    }
  }
 catch (  Exception ex) {
    ex.printStackTrace();
    readFail=true;
  }
  if (!readFail) {
    try {
      File tmp=(new File(saveFolder + "String_Node_Str" + dim+ "String_Node_Str"));
      if (tmp.exists())       FileUtils.copyFile(tmp,(new File(saveFolder + "String_Node_Str" + dim+ "String_Node_Str")));
      if ((new File(saveFolder + "String_Node_Str" + dim+ "String_Node_Str").exists()))       FileUtils.copyFile((new File(saveFolder + "String_Node_Str" + dim+ "String_Node_Str")),(new File(saveFolder + "String_Node_Str" + dim+ "String_Node_Str")));
    }
 catch (    Exception ex) {
      ex.printStackTrace();
    }
  }
 else {
    System.out.println("String_Node_Str");
    try {
      if ((new File(saveFolder + "String_Node_Str" + dim+ "String_Node_Str")).exists()) {
        rtsNBT=CompressedStreamTools.readCompressed(new FileInputStream(saveFolder + "String_Node_Str" + dim+ "String_Node_Str"));
      }
 else {
        System.out.println("String_Node_Str");
      }
    }
 catch (    Exception ex) {
      ex.printStackTrace();
      System.out.println("String_Node_Str");
    }
  }
  lastStormFormed=rtsNBT.getLong("String_Node_Str");
  lastSandstormFormed=rtsNBT.getLong("String_Node_Str");
  VolcanoObject.lastUsedID=rtsNBT.getLong("String_Node_Str");
  StormObject.lastUsedStormID=rtsNBT.getLong("String_Node_Str");
  windMan.readFromNBT(rtsNBT.getCompoundTag("String_Node_Str"));
  NBTTagCompound nbtVolcanoes=rtsNBT.getCompoundTag("String_Node_Str");
  Iterator it=nbtVolcanoes.getKeySet().iterator();
  while (it.hasNext()) {
    String tagName=(String)it.next();
    NBTTagCompound teamData=nbtVolcanoes.getCompoundTag(tagName);
    VolcanoObject to=new VolcanoObject(ServerTickHandler.lookupDimToWeatherMan.get(0));
    try {
      to.readFromNBT(teamData);
    }
 catch (    Exception ex) {
      ex.printStackTrace();
    }
    addVolcanoObject(to);
    ((WeatherManagerServer)(this)).syncVolcanoNew(to);
    to.initPost();
  }
  NBTTagCompound nbtStorms=rtsNBT.getCompoundTag("String_Node_Str");
  it=nbtStorms.getKeySet().iterator();
  while (it.hasNext()) {
    String tagName=(String)it.next();
    NBTTagCompound data=nbtStorms.getCompoundTag(tagName);
    if (ServerTickHandler.lookupDimToWeatherMan.get(dim) != null) {
      WeatherObject wo=null;
      if (data.getInteger("String_Node_Str") == EnumStormType.CLOUD.ordinal()) {
        wo=new StormObject(this);
      }
 else       if (data.getInteger("String_Node_Str") == EnumStormType.SAND.ordinal()) {
        wo=new WeatherObjectSandstorm(this);
      }
      try {
        wo.readFromNBT(data);
      }
 catch (      Exception ex) {
        ex.printStackTrace();
      }
      addStormObject(wo);
      ((WeatherManagerServer)(this)).syncStormNew(wo);
    }
 else {
      System.out.println("String_Node_Str" + dim);
    }
  }
}

Fixed version (ground truth):
public void readFromFile(){
  NBTTagCompound rtsNBT=new NBTTagCompound();
  String saveFolder=CoroUtilFile.getWorldSaveFolderPath() + CoroUtilFile.getWorldFolderName() + "String_Node_Str"+ File.separator;
  boolean readFail=false;
  try {
    if ((new File(saveFolder + "String_Node_Str" + dim+ "String_Node_Str")).exists()) {
      rtsNBT=CompressedStreamTools.readCompressed(new FileInputStream(saveFolder + "String_Node_Str" + dim+ "String_Node_Str"));
    }
 else {
    }
  }
 catch (  Exception ex) {
    ex.printStackTrace();
    readFail=true;
  }
  if (!readFail) {
    try {
      File tmp=(new File(saveFolder + "String_Node_Str" + dim+ "String_Node_Str"));
      if (tmp.exists())       FileUtils.copyFile(tmp,(new File(saveFolder + "String_Node_Str" + dim+ "String_Node_Str")));
      if ((new File(saveFolder + "String_Node_Str" + dim+ "String_Node_Str").exists()))       FileUtils.copyFile((new File(saveFolder + "String_Node_Str" + dim+ "String_Node_Str")),(new File(saveFolder + "String_Node_Str" + dim+ "String_Node_Str")));
    }
 catch (    Exception ex) {
      ex.printStackTrace();
    }
  }
 else {
    System.out.println("String_Node_Str");
    try {
      if ((new File(saveFolder + "String_Node_Str" + dim+ "String_Node_Str")).exists()) {
        rtsNBT=CompressedStreamTools.readCompressed(new FileInputStream(saveFolder + "String_Node_Str" + dim+ "String_Node_Str"));
      }
 else {
        System.out.println("String_Node_Str");
      }
    }
 catch (    Exception ex) {
      ex.printStackTrace();
      System.out.println("String_Node_Str");
    }
  }
  lastStormFormed=rtsNBT.getLong("String_Node_Str");
  lastSandstormFormed=rtsNBT.getLong("String_Node_Str");
  VolcanoObject.lastUsedID=rtsNBT.getLong("String_Node_Str");
  StormObject.lastUsedStormID=rtsNBT.getLong("String_Node_Str");
  windMan.readFromNBT(rtsNBT.getCompoundTag("String_Node_Str"));
  NBTTagCompound nbtVolcanoes=rtsNBT.getCompoundTag("String_Node_Str");
  Iterator it=nbtVolcanoes.getKeySet().iterator();
  while (it.hasNext()) {
    String tagName=(String)it.next();
    NBTTagCompound teamData=nbtVolcanoes.getCompoundTag(tagName);
    VolcanoObject to=new VolcanoObject(ServerTickHandler.lookupDimToWeatherMan.get(0));
    try {
      to.readFromNBT(teamData);
    }
 catch (    Exception ex) {
      ex.printStackTrace();
    }
    addVolcanoObject(to);
    ((WeatherManagerServer)(this)).syncVolcanoNew(to);
    to.initPost();
  }
  NBTTagCompound nbtStorms=rtsNBT.getCompoundTag("String_Node_Str");
  it=nbtStorms.getKeySet().iterator();
  while (it.hasNext()) {
    String tagName=(String)it.next();
    NBTTagCompound data=nbtStorms.getCompoundTag(tagName);
    if (ServerTickHandler.lookupDimToWeatherMan.get(dim) != null) {
      WeatherObject wo=null;
      if (data.getInteger("String_Node_Str") == EnumWeatherObjectType.CLOUD.ordinal()) {
        wo=new StormObject(this);
      }
 else       if (data.getInteger("String_Node_Str") == EnumWeatherObjectType.SAND.ordinal()) {
        wo=new WeatherObjectSandstorm(this);
      }
      try {
        wo.readFromNBT(data);
      }
 catch (      Exception ex) {
        ex.printStackTrace();
      }
      addStormObject(wo);
      ((WeatherManagerServer)(this)).syncStormNew(wo);
    }
 else {
      System.out.println("String_Node_Str" + dim);
    }
  }
}