Program: 3014
Project: 3014
Buggy source:
public void onEnable(){
  getDataFolder().mkdirs();
  File yml=new File(getDataFolder(),"String_Node_Str");
  if (!yml.exists()) {
    try {
      yml.createNewFile();
      log.info("String_Node_Str" + getDataFolder() + "String_Node_Str");
      getConfiguration().setProperty("String_Node_Str",null);
      getConfiguration().save();
    }
 catch (    IOException ex) {
      log.warning(getDescription().getName() + "String_Node_Str");
    }
  }
  verbosity=CommonPlugin.getVerbosity(this);
  pri=CommonPlugin.getPriority(this);
  List<String> keys=CommonPlugin.getRootKeys(this);
  if (keys == null) {
    log.warning(getDescription().getName() + "String_Node_Str");
    return;
  }
  if (!keys.contains("String_Node_Str")) {
    log.warning(getDescription().getName() + "String_Node_Str");
    return;
  }
  keys.clear();
  keys=getConfiguration().getKeys("String_Node_Str");
  if (null == keys) {
    log.info(getDescription().getName() + "String_Node_Str");
    return;
  }
  for (  String s : keys) {
    List<Object> original_children=getConfiguration().getList("String_Node_Str" + s);
    if (original_children == null) {
      log.warning("String_Node_Str" + s + "String_Node_Str");
      continue;
    }
    for (    Object o : original_children) {
      if (o instanceof HashMap<?,?>) {
        OtherBlocksContainer bt=new OtherBlocksContainer();
        try {
          HashMap<?,?> m=(HashMap<?,?>)o;
          String originalString=s;
          if (isCreature(originalString)) {
            bt.original="String_Node_Str" + CreatureType.valueOf(creatureName(originalString)).toString();
          }
 else           if (isLeafDecay(originalString)) {
            bt.original=originalString;
          }
 else {
            bt.original=Material.valueOf(originalString).toString();
          }
          bt.tool=new ArrayList<Material>();
          if (isLeafDecay(bt.original)) {
            bt.tool.add((Material)null);
          }
 else           if (m.get("String_Node_Str") instanceof String) {
            String toolString=(String)m.get("String_Node_Str");
            if (toolString.equalsIgnoreCase("String_Node_Str")) {
              toolString="String_Node_Str";
            }
            if (toolString.equalsIgnoreCase("String_Node_Str") || toolString.equalsIgnoreCase("String_Node_Str")) {
              bt.tool.add((Material)null);
            }
 else {
              bt.tool.add(Material.valueOf(toolString));
            }
          }
 else           if (m.get("String_Node_Str") instanceof List<?>) {
            for (            Object listTool : (List<?>)m.get("String_Node_Str")) {
              bt.tool.add(Material.valueOf((String)listTool));
            }
          }
 else {
            throw new Exception("String_Node_Str");
          }
          String dropString=String.valueOf(m.get("String_Node_Str"));
          if (dropString.equalsIgnoreCase("String_Node_Str")) {
            dropString="String_Node_Str";
          }
          if (isCreature(dropString)) {
            bt.dropped="String_Node_Str" + CreatureType.valueOf(creatureName(dropString)).toString();
          }
 else           if (dropString.equalsIgnoreCase("String_Node_Str")) {
            bt.dropped="String_Node_Str";
          }
 else {
            bt.dropped=Material.valueOf(dropString).toString();
          }
          String dropColor=String.valueOf(m.get("String_Node_Str"));
          if (dropColor == "String_Node_Str") {
            bt.color=0;
          }
 else           if (dropString.equalsIgnoreCase("String_Node_Str")) {
            bt.color=CommonMaterial.getWoolColor(DyeColor.valueOf(dropColor));
          }
 else           if (dropString.equalsIgnoreCase("String_Node_Str")) {
            bt.color=CommonMaterial.getDyeColor(DyeColor.valueOf(dropColor));
          }
 else {
            bt.color=Short.valueOf(dropColor);
          }
          Integer dropQuantity=Integer.class.cast(m.get("String_Node_Str"));
          bt.quantity=(dropQuantity == null || dropQuantity <= 0) ? 1 : dropQuantity;
          Integer toolDamage=Integer.class.cast(m.get("String_Node_Str"));
          bt.damage=(toolDamage == null || toolDamage < 0) ? 1 : toolDamage;
          Double dropChance;
          try {
            dropChance=Double.valueOf(String.valueOf(m.get("String_Node_Str")));
            bt.chance=(dropChance < 0 || dropChance > 100) ? 100 : dropChance;
          }
 catch (          NumberFormatException ex) {
            bt.chance=100.0;
          }
          bt.worlds=new ArrayList<String>();
          if (m.get("String_Node_Str") == null) {
            bt.worlds.add((String)null);
          }
 else           if (m.get("String_Node_Str") instanceof String) {
            String worldString=(String)m.get("String_Node_Str");
            if (worldString.equalsIgnoreCase("String_Node_Str") || worldString.equalsIgnoreCase("String_Node_Str")) {
              bt.worlds.add((String)null);
            }
 else {
              bt.worlds.add(worldString);
            }
          }
 else           if (m.get("String_Node_Str") instanceof List<?>) {
            for (            Object listWorld : (List<?>)m.get("String_Node_Str")) {
              bt.worlds.add((String)listWorld);
            }
          }
 else {
            throw new Exception("String_Node_Str");
          }
        }
 catch (        Throwable ex) {
          if (verbosity > 1) {
            log.warning("String_Node_Str" + s + "String_Node_Str"+ ex.getMessage());
          }
          ex.printStackTrace();
          continue;
        }
        transformList.add(bt);
        if (verbosity > 1) {
          log.info(getDescription().getName() + "String_Node_Str" + (bt.tool.contains(null) ? "String_Node_Str" : (bt.tool.size() == 1 ? bt.tool.get(0).toString() : bt.tool.toString()))+ "String_Node_Str"+ creatureName(bt.original)+ "String_Node_Str"+ (bt.quantity != 1 ? bt.quantity.toString() + "String_Node_Str" : "String_Node_Str")+ creatureName(bt.dropped)+ (bt.chance < 100 ? "String_Node_Str" + bt.chance.toString() + "String_Node_Str" : "String_Node_Str"));
        }
      }
    }
  }
  PluginManager pm=getServer().getPluginManager();
  pm.registerEvent(Event.Type.BLOCK_BREAK,blockListener,pri,this);
  pm.registerEvent(Event.Type.LEAVES_DECAY,blockListener,pri,this);
  pm.registerEvent(Event.Type.ENTITY_DEATH,entityListener,pri,this);
  pm.registerEvent(Event.Type.ENTITY_DAMAGED,entityListener,pri,this);
  log.info(getDescription().getName() + "String_Node_Str" + getDescription().getVersion()+ "String_Node_Str");
}

Fixed version (ground truth):
public void onEnable(){
  getDataFolder().mkdirs();
  File yml=new File(getDataFolder(),"String_Node_Str");
  if (!yml.exists()) {
    try {
      yml.createNewFile();
      log.info("String_Node_Str" + getDataFolder() + "String_Node_Str");
      getConfiguration().setProperty("String_Node_Str",null);
      getConfiguration().save();
    }
 catch (    IOException ex) {
      log.warning(getDescription().getName() + "String_Node_Str");
    }
  }
  verbosity=CommonPlugin.getVerbosity(this);
  pri=CommonPlugin.getPriority(this);
  List<String> keys=CommonPlugin.getRootKeys(this);
  if (keys == null) {
    log.warning(getDescription().getName() + "String_Node_Str");
    return;
  }
  if (!keys.contains("String_Node_Str")) {
    log.warning(getDescription().getName() + "String_Node_Str");
    return;
  }
  keys.clear();
  keys=getConfiguration().getKeys("String_Node_Str");
  if (null == keys) {
    log.info(getDescription().getName() + "String_Node_Str");
    return;
  }
  for (  String s : keys) {
    List<Object> original_children=getConfiguration().getList("String_Node_Str" + s);
    if (original_children == null) {
      log.warning("String_Node_Str" + s + "String_Node_Str");
      continue;
    }
    for (    Object o : original_children) {
      if (o instanceof HashMap<?,?>) {
        OtherBlocksContainer bt=new OtherBlocksContainer();
        try {
          HashMap<?,?> m=(HashMap<?,?>)o;
          String originalString=s;
          if (isCreature(originalString)) {
            bt.original="String_Node_Str" + CreatureType.valueOf(creatureName(originalString)).toString();
          }
 else           if (isLeafDecay(originalString)) {
            bt.original=originalString;
          }
 else {
            bt.original=Material.valueOf(originalString).toString();
          }
          bt.tool=new ArrayList<Material>();
          if (isLeafDecay(bt.original)) {
            bt.tool.add((Material)null);
          }
 else           if (m.get("String_Node_Str") instanceof String) {
            String toolString=(String)m.get("String_Node_Str");
            if (toolString.equalsIgnoreCase("String_Node_Str")) {
              toolString="String_Node_Str";
            }
            if (toolString.equalsIgnoreCase("String_Node_Str") || toolString.equalsIgnoreCase("String_Node_Str")) {
              bt.tool.add((Material)null);
            }
 else {
              bt.tool.add(Material.valueOf(toolString));
            }
          }
 else           if (m.get("String_Node_Str") instanceof List<?>) {
            for (            Object listTool : (List<?>)m.get("String_Node_Str")) {
              bt.tool.add(Material.valueOf((String)listTool));
            }
          }
 else {
            throw new Exception("String_Node_Str");
          }
          String dropString=String.valueOf(m.get("String_Node_Str"));
          if (dropString.equalsIgnoreCase("String_Node_Str")) {
            dropString="String_Node_Str";
          }
          if (isCreature(dropString)) {
            bt.dropped="String_Node_Str" + CreatureType.valueOf(creatureName(dropString)).toString();
          }
 else           if (dropString.equalsIgnoreCase("String_Node_Str")) {
            bt.dropped="String_Node_Str";
          }
 else {
            bt.dropped=Material.valueOf(dropString).toString();
          }
          String dropColor=String.valueOf(m.get("String_Node_Str"));
          if (dropColor == "String_Node_Str") {
            bt.color=0;
          }
 else           if (dropString.equalsIgnoreCase("String_Node_Str")) {
            bt.color=CommonMaterial.getWoolColor(DyeColor.valueOf(dropColor));
          }
 else           if (dropString.equalsIgnoreCase("String_Node_Str")) {
            bt.color=CommonMaterial.getDyeColor(DyeColor.valueOf(dropColor));
          }
 else {
            bt.color=Short.valueOf(dropColor);
          }
          try {
            Integer dropQuantity=Integer.class.cast(m.get("String_Node_Str"));
            bt.min_quantity=(dropQuantity == null || dropQuantity <= 0) ? 1 : dropQuantity;
            bt.max_quantity=null;
          }
 catch (          ClassCastException x) {
            String dropQuantity=String.class.cast(m.get("String_Node_Str"));
            String[] split=dropQuantity.split("String_Node_Str");
            bt.min_quantity=Integer.valueOf(split[0]);
            bt.max_quantity=Integer.valueOf(split[1]);
          }
          Integer toolDamage=Integer.class.cast(m.get("String_Node_Str"));
          bt.damage=(toolDamage == null || toolDamage < 0) ? 1 : toolDamage;
          Double dropChance;
          try {
            dropChance=Double.valueOf(String.valueOf(m.get("String_Node_Str")));
            bt.chance=(dropChance < 0 || dropChance > 100) ? 100 : dropChance;
          }
 catch (          NumberFormatException ex) {
            bt.chance=100.0;
          }
          bt.worlds=new ArrayList<String>();
          if (m.get("String_Node_Str") == null) {
            bt.worlds.add((String)null);
          }
 else           if (m.get("String_Node_Str") instanceof String) {
            String worldString=(String)m.get("String_Node_Str");
            if (worldString.equalsIgnoreCase("String_Node_Str") || worldString.equalsIgnoreCase("String_Node_Str")) {
              bt.worlds.add((String)null);
            }
 else {
              bt.worlds.add(worldString);
            }
          }
 else           if (m.get("String_Node_Str") instanceof List<?>) {
            for (            Object listWorld : (List<?>)m.get("String_Node_Str")) {
              bt.worlds.add((String)listWorld);
            }
          }
 else {
            throw new Exception("String_Node_Str");
          }
        }
 catch (        Throwable ex) {
          if (verbosity > 1) {
            log.warning("String_Node_Str" + s + "String_Node_Str"+ ex.getMessage());
          }
          ex.printStackTrace();
          continue;
        }
        transformList.add(bt);
        if (verbosity > 1) {
          log.info(getDescription().getName() + "String_Node_Str" + (bt.tool.contains(null) ? "String_Node_Str" : (bt.tool.size() == 1 ? bt.tool.get(0).toString() : bt.tool.toString()))+ "String_Node_Str"+ creatureName(bt.original)+ "String_Node_Str"+ (bt.min_quantity != 1 ? bt.min_quantity.toString() + (bt.max_quantity == null ? "String_Node_Str" : "String_Node_Str" + bt.max_quantity.toString()) + "String_Node_Str" : "String_Node_Str")+ creatureName(bt.dropped)+ (bt.chance < 100 ? "String_Node_Str" + bt.chance.toString() + "String_Node_Str" : "String_Node_Str"));
        }
      }
    }
  }
  PluginManager pm=getServer().getPluginManager();
  pm.registerEvent(Event.Type.BLOCK_BREAK,blockListener,pri,this);
  pm.registerEvent(Event.Type.LEAVES_DECAY,blockListener,pri,this);
  pm.registerEvent(Event.Type.ENTITY_DEATH,entityListener,pri,this);
  pm.registerEvent(Event.Type.ENTITY_DAMAGED,entityListener,pri,this);
  log.info(getDescription().getName() + "String_Node_Str" + getDescription().getVersion()+ "String_Node_Str");
}