Program: 187538
Project: 187538
Buggy source:
public boolean onCommand(CommandSender sender,Command command,String label,String[] args){
  if (!(sender instanceof Player)) {
    sender.sendMessage("String_Node_Str");
    return true;
  }
  Player player=(Player)sender;
  if (MyPetList.hasMyPet(player)) {
    MyPet myPet=MyPetList.getMyPet(player);
    if (MyPetConfiguration.AUTOMATIC_SKILLTREE_ASSIGNMENT && !myPet.getOwner().isMyPetAdmin()) {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",myPet.getOwner().getLanguage())));
    }
 else     if (myPet.getSkillTree() != null && MyPetConfiguration.CHOOSE_SKILLTREE_ONLY_ONCE && !myPet.getOwner().isMyPetAdmin()) {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",myPet.getOwner().getLanguage()).replace("String_Node_Str",myPet.getPetName())));
    }
 else     if (MyPetSkillTreeMobType.hasMobType(myPet.getPetType().getTypeName())) {
      MyPetSkillTreeMobType skillTreeMobType=MyPetSkillTreeMobType.getMobTypeByName(myPet.getPetType().getTypeName());
      if (args.length >= 1) {
        String skilltreeName="String_Node_Str";
        for (        String arg : args) {
          skilltreeName+=arg + "String_Node_Str";
        }
        skilltreeName=skilltreeName.substring(0,skilltreeName.length() - 1);
        if (skillTreeMobType.hasSkillTree(skilltreeName)) {
          MyPetSkillTree skillTree=skillTreeMobType.getSkillTree(skilltreeName);
          if (MyPetPermissions.has(player,"String_Node_Str" + skillTree.getPermission())) {
            if (myPet.setSkilltree(skillTree)) {
              sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",player).replace("String_Node_Str",skillTree.getName())));
            }
 else {
              sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",player)));
            }
          }
 else {
            sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",player).replace("String_Node_Str",skilltreeName)));
          }
        }
 else {
          sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",player).replace("String_Node_Str",skilltreeName)));
        }
      }
 else {
        sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",player).replace("String_Node_Str",myPet.getPetName())));
        for (        MyPetSkillTree skillTree : skillTreeMobType.getSkillTrees()) {
          if (MyPetPermissions.has(player,"String_Node_Str" + skillTree.getPermission())) {
            sender.sendMessage("String_Node_Str" + skillTree.getName());
          }
        }
      }
    }
  }
 else {
    sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",player)));
  }
  return true;
}

Fixed version (ground truth):
public boolean onCommand(CommandSender sender,Command command,String label,String[] args){
  if (!(sender instanceof Player)) {
    sender.sendMessage("String_Node_Str");
    return true;
  }
  Player player=(Player)sender;
  if (MyPetList.hasMyPet(player)) {
    MyPet myPet=MyPetList.getMyPet(player);
    if (MyPetConfiguration.AUTOMATIC_SKILLTREE_ASSIGNMENT && !myPet.getOwner().isMyPetAdmin()) {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",myPet.getOwner().getLanguage())));
    }
 else     if (myPet.getSkillTree() != null && MyPetConfiguration.CHOOSE_SKILLTREE_ONLY_ONCE && !myPet.getOwner().isMyPetAdmin()) {
      sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",myPet.getOwner().getLanguage()).replace("String_Node_Str",myPet.getPetName())));
    }
 else     if (MyPetSkillTreeMobType.hasMobType(myPet.getPetType().getTypeName())) {
      MyPetSkillTreeMobType skillTreeMobType=MyPetSkillTreeMobType.getMobTypeByName(myPet.getPetType().getTypeName());
      if (args.length >= 1) {
        String skilltreeName="String_Node_Str";
        for (        String arg : args) {
          skilltreeName+=arg + "String_Node_Str";
        }
        skilltreeName=skilltreeName.substring(0,skilltreeName.length() - 1);
        if (skillTreeMobType.hasSkillTree(skilltreeName)) {
          MyPetSkillTree skillTree=skillTreeMobType.getSkillTree(skilltreeName);
          if (MyPetPermissions.has(player,"String_Node_Str" + skillTree.getPermission())) {
            if (myPet.setSkilltree(skillTree)) {
              sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",player).replace("String_Node_Str",skillTree.getName())));
              if (myPet.getOwner().isMyPetAdmin() && MyPetConfiguration.SKILLTREE_SWITCH_PENALTY_ADMIN) {
                myPet.getExperience().removeExp(MyPetConfiguration.SKILLTREE_SWITCH_PENALTY_FIXED);
                myPet.getExperience().removeExp(myPet.getExperience().getExp() * MyPetConfiguration.SKILLTREE_SWITCH_PENALTY_PERCENT / 100.);
              }
 else {
                myPet.getExperience().removeExp(MyPetConfiguration.SKILLTREE_SWITCH_PENALTY_FIXED);
                myPet.getExperience().removeExp(myPet.getExperience().getExp() * MyPetConfiguration.SKILLTREE_SWITCH_PENALTY_PERCENT / 100.);
              }
            }
 else {
              sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",player)));
            }
          }
 else {
            sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",player).replace("String_Node_Str",skilltreeName)));
          }
        }
 else {
          sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",player).replace("String_Node_Str",skilltreeName)));
        }
      }
 else {
        sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",player).replace("String_Node_Str",myPet.getPetName())));
        for (        MyPetSkillTree skillTree : skillTreeMobType.getSkillTrees()) {
          if (MyPetPermissions.has(player,"String_Node_Str" + skillTree.getPermission())) {
            sender.sendMessage("String_Node_Str" + skillTree.getName());
          }
        }
      }
    }
  }
 else {
    sender.sendMessage(MyPetBukkitUtil.setColors(MyPetLocales.getString("String_Node_Str",player)));
  }
  return true;
}