Program: 33907
Project: 33907
Buggy source:
/** 
 * Saves the grid. Option to save sync or async. Async cannot be used when disabling the plugin
 * @param async
 */
public void saveGrid(boolean async){
  final File islandFile=new File(plugin.getDataFolder(),ISLANDS_FILENAME);
  final YamlConfiguration islandYaml=new YamlConfiguration();
  List<String> islandSettings=new ArrayList<String>();
  for (  SettingsFlag flag : SettingsFlag.values()) {
    islandSettings.add(flag.toString());
  }
  islandYaml.set(SETTINGS_KEY,islandSettings);
  boolean savedSpawn=false;
  List<String> islandList=new ArrayList<String>();
  for (  int x : islandGrid.keySet()) {
    for (    int z : islandGrid.get(x).keySet()) {
      Island island=islandGrid.get(x).get(z);
      if (!island.isSpawn()) {
        islandList.add(island.save());
      }
 else {
        savedSpawn=true;
        islandYaml.set("String_Node_Str",Util.getStringLocation(island.getCenter()));
        islandYaml.set("String_Node_Str",Util.getStringLocation(island.getSpawnPoint()));
        islandYaml.set("String_Node_Str",island.getProtectionSize());
        islandYaml.set("String_Node_Str",island.isLocked());
        islandYaml.set("String_Node_Str",island.getBiome().toString());
        islandYaml.set("String_Node_Str",island.getSettings());
      }
    }
  }
  if (!savedSpawn && getSpawn() != null) {
    plugin.getLogger().severe("String_Node_Str");
    plugin.getLogger().severe("String_Node_Str");
    plugin.getLogger().severe("String_Node_Str");
    islandYaml.set("String_Node_Str",Util.getStringLocation(getSpawn().getCenter()));
    islandYaml.set("String_Node_Str",Util.getStringLocation(getSpawn().getSpawnPoint()));
    islandYaml.set("String_Node_Str",getSpawn().getProtectionSize());
    islandYaml.set("String_Node_Str",getSpawn().isLocked());
    islandYaml.set("String_Node_Str",getSpawn().getBiome().toString());
    islandYaml.set("String_Node_Str",getSpawn().getSettings());
  }
  islandYaml.set(Settings.worldName,islandList);
  if (async) {
    Bukkit.getScheduler().runTaskAsynchronously(plugin,new Runnable(){
      public void run(){
        try {
          islandYaml.save(islandFile);
        }
 catch (        Exception e) {
          plugin.getLogger().severe("String_Node_Str" + ISLANDS_FILENAME + "String_Node_Str");
          e.printStackTrace();
        }
      }
    }
);
  }
 else {
    try {
      islandYaml.save(islandFile);
    }
 catch (    Exception e) {
      plugin.getLogger().severe("String_Node_Str" + ISLANDS_FILENAME + "String_Node_Str"+ e.getMessage());
    }
  }
  if (islandNames != null) {
    try {
      islandNames.save(islandNameFile);
    }
 catch (    IOException e) {
      plugin.getLogger().severe("String_Node_Str" + e.getMessage());
    }
  }
}

Fixed version (ground truth):
/** 
 * Saves the grid. Option to save sync or async. Async cannot be used when disabling the plugin
 * @param async
 */
public void saveGrid(boolean async){
  final File islandFile=new File(plugin.getDataFolder(),ISLANDS_FILENAME);
  final YamlConfiguration islandYaml=new YamlConfiguration();
  List<String> islandSettings=new ArrayList<String>();
  for (  SettingsFlag flag : SettingsFlag.values()) {
    islandSettings.add(flag.toString());
  }
  islandYaml.set(SETTINGS_KEY,islandSettings);
  if (getSpawn() != null) {
    islandYaml.set("String_Node_Str",Util.getStringLocation(getSpawn().getCenter()));
    islandYaml.set("String_Node_Str",Util.getStringLocation(getSpawn().getSpawnPoint()));
    islandYaml.set("String_Node_Str",getSpawn().getProtectionSize());
    islandYaml.set("String_Node_Str",getSpawn().getSettings());
  }
  List<String> islandList=new ArrayList<String>();
  Iterator<TreeMap<Integer,Island>> it=islandGrid.values().iterator();
  while (it.hasNext()) {
    Iterator<Island> islandIt=it.next().values().iterator();
    while (islandIt.hasNext()) {
      Island island=islandIt.next();
      islandList.add(island.save());
    }
  }
  islandYaml.set(Settings.worldName,islandList);
  if (async) {
    Bukkit.getScheduler().runTaskAsynchronously(plugin,new Runnable(){
      public void run(){
        try {
          islandYaml.save(islandFile);
        }
 catch (        Exception e) {
          plugin.getLogger().severe("String_Node_Str" + ISLANDS_FILENAME + "String_Node_Str");
        }
      }
    }
);
  }
 else {
    try {
      islandYaml.save(islandFile);
    }
 catch (    Exception e) {
      plugin.getLogger().severe("String_Node_Str" + ISLANDS_FILENAME + "String_Node_Str"+ e.getMessage());
    }
  }
  if (islandNames != null) {
    try {
      islandNames.save(islandNameFile);
    }
 catch (    IOException e) {
      plugin.getLogger().severe("String_Node_Str" + e.getMessage());
    }
  }
}