Program: 83912
Project: 83912
Buggy source:
/** 
 * Called when a command is sent
 * @param sender  The sender (aka player)
 * @param command The command
 * @param label   The label
 * @param args    The arguments used
 * @return Whether the command succeeded or not
 */
public boolean onCommand(CommandSender sender,Command command,String label,String[] args){
  boolean retVal=false;
  Player player=(Player)sender;
  if (this.plugin.hasPermission(player,AppStrings.COMMAND_LIST_PERMISSION,AppStrings.COMMAND_LIST)) {
    if (args.length == 0) {
      String addonMsgPrefix=AppStrings.getAddonMsgPrefix(plugin);
      List<Warp> warpsList=plugin.getWarpManager().getVisibleWarpsForUser(player.getDisplayName(),player);
      if (warpsList.size() > 0) {
        List<Warp> playerOwnedWarps=new ArrayList<Warp>();
        for (        Warp warp : warpsList) {
          if (warp.getOwner().equalsIgnoreCase(player.getDisplayName())) {
            playerOwnedWarps.add(warp);
          }
        }
        Collections.sort(playerOwnedWarps);
        Collections.sort(warpsList);
        String playerOwnedWarpsStr="String_Node_Str";
        String otherOwnedWarpStr="String_Node_Str";
        if (playerOwnedWarps.size() > 0) {
          int i=0;
          while (i < playerOwnedWarps.size()) {
            Warp warp=playerOwnedWarps.get(i);
            playerOwnedWarpsStr+=warp.getWarpType().getTypeColor() + warp.getName();
            i++;
            if (i != playerOwnedWarps.size())             playerOwnedWarpsStr+="String_Node_Str";
          }
        }
        Map<String,List<Warp>> nameToWarpListMapping=new HashMap<String,List<Warp>>();
        List<Warp> tmpWarpList=null;
        for (        Warp warp : warpsList) {
          if (nameToWarpListMapping.containsKey(warp.getName()))           tmpWarpList=nameToWarpListMapping.get(warp.getName());
 else           tmpWarpList=new ArrayList<Warp>();
          tmpWarpList.add(warp);
          nameToWarpListMapping.put(warp.getName(),tmpWarpList);
        }
        String warpName=null;
        Set<Map.Entry<String,List<Warp>>> nameToWarpListEntries=nameToWarpListMapping.entrySet();
        for (        Map.Entry<String,List<Warp>> next : nameToWarpListEntries) {
          List<Warp> warpsWithSameName=next.getValue();
          boolean useFullyQualifiedNames=(warpsWithSameName.size() > 1);
          for (          Warp warp : warpsWithSameName) {
            if (warp.getOwner().equalsIgnoreCase(player.getDisplayName()))             continue;
            warpName=useFullyQualifiedNames ? warp.getFullyQualifiedName() : warp.getName();
            otherOwnedWarpStr+=warp.getWarpType().getTypeColor() + warpName;
            otherOwnedWarpStr+="String_Node_Str";
          }
        }
        otherOwnedWarpStr=otherOwnedWarpStr.trim().substring(0,otherOwnedWarpStr.length() - 2);
        String warpTypesInfo=ChatColor.WHITE + "String_Node_Str" + WarpType.LISTED.getTypeColor()+ AppStrings.WARP_TYPE_LISTED+ "String_Node_Str"+ WarpType.UNLISTED.getTypeColor()+ AppStrings.WARP_TYPE_UNLISTED+ "String_Node_Str"+ WarpType.PRIVATE.getTypeColor()+ AppStrings.WARP_TYPE_PRIVATE+ ChatColor.WHITE+ "String_Node_Str";
        player.sendMessage(ChatColor.AQUA + addonMsgPrefix + warpTypesInfo);
        player.sendMessage(ChatColor.GREEN + AppStrings.WARPS_YOURS + playerOwnedWarpsStr);
        player.sendMessage(ChatColor.GREEN + AppStrings.WARPS_OTHERS + otherOwnedWarpStr);
      }
 else {
        player.sendMessage(ChatColor.AQUA + addonMsgPrefix + ChatColor.GREEN+ AppStrings.AVAILABLE_WARPS_PREFIX+ ChatColor.WHITE+ AppStrings.NO_AVAILABLE_WARPS);
      }
      retVal=true;
    }
  }
 else   retVal=true;
  return retVal;
}

Fixed version (ground truth):
/** 
 * Called when a command is sent
 * @param sender  The sender (aka player)
 * @param command The command
 * @param label   The label
 * @param args    The arguments used
 * @return Whether the command succeeded or not
 */
public boolean onCommand(CommandSender sender,Command command,String label,String[] args){
  boolean retVal=false;
  Player player=(Player)sender;
  if (this.plugin.hasPermission(player,AppStrings.COMMAND_LIST_PERMISSION,AppStrings.COMMAND_LIST)) {
    if (args.length == 0) {
      String addonMsgPrefix=AppStrings.getAddonMsgPrefix(plugin);
      List<Warp> warpsList=plugin.getWarpManager().getVisibleWarpsForUser(player.getDisplayName(),player);
      if (warpsList.size() > 0) {
        List<Warp> playerOwnedWarps=new ArrayList<Warp>();
        for (        Warp warp : warpsList) {
          if (warp.getOwner().equalsIgnoreCase(player.getDisplayName())) {
            playerOwnedWarps.add(warp);
          }
        }
        Collections.sort(playerOwnedWarps);
        Collections.sort(warpsList);
        String playerOwnedWarpsStr="String_Node_Str";
        String otherOwnedWarpStr="String_Node_Str";
        if (playerOwnedWarps.size() > 0) {
          int i=0;
          while (i < playerOwnedWarps.size()) {
            Warp warp=playerOwnedWarps.get(i);
            playerOwnedWarpsStr+=warp.getWarpType().getTypeColor() + warp.getName();
            i++;
            if (i != playerOwnedWarps.size())             playerOwnedWarpsStr+="String_Node_Str";
          }
        }
        Map<String,List<Warp>> nameToWarpListMapping=new HashMap<String,List<Warp>>();
        List<Warp> tmpWarpList=null;
        for (        Warp warp : warpsList) {
          if (nameToWarpListMapping.containsKey(warp.getName()))           tmpWarpList=nameToWarpListMapping.get(warp.getName());
 else           tmpWarpList=new ArrayList<Warp>();
          tmpWarpList.add(warp);
          nameToWarpListMapping.put(warp.getName(),tmpWarpList);
        }
        String warpName=null;
        Set<Map.Entry<String,List<Warp>>> nameToWarpListEntries=nameToWarpListMapping.entrySet();
        for (        Map.Entry<String,List<Warp>> next : nameToWarpListEntries) {
          List<Warp> warpsWithSameName=next.getValue();
          boolean useFullyQualifiedNames=(warpsWithSameName.size() > 1);
          for (          Warp warp : warpsWithSameName) {
            if (warp.getOwner().equalsIgnoreCase(player.getDisplayName()))             continue;
            warpName=useFullyQualifiedNames ? warp.getFullyQualifiedName() : warp.getName();
            otherOwnedWarpStr+=warp.getWarpType().getTypeColor() + warpName;
            otherOwnedWarpStr+="String_Node_Str";
          }
        }
        if (otherOwnedWarpStr.endsWith("String_Node_Str"))         otherOwnedWarpStr=otherOwnedWarpStr.trim().substring(0,otherOwnedWarpStr.length() - 2);
        String warpTypesInfo=ChatColor.WHITE + "String_Node_Str" + WarpType.LISTED.getTypeColor()+ AppStrings.WARP_TYPE_LISTED+ "String_Node_Str"+ WarpType.UNLISTED.getTypeColor()+ AppStrings.WARP_TYPE_UNLISTED+ "String_Node_Str"+ WarpType.PRIVATE.getTypeColor()+ AppStrings.WARP_TYPE_PRIVATE+ ChatColor.WHITE+ "String_Node_Str";
        player.sendMessage(ChatColor.AQUA + addonMsgPrefix + warpTypesInfo);
        player.sendMessage(ChatColor.GREEN + AppStrings.WARPS_YOURS + playerOwnedWarpsStr);
        player.sendMessage(ChatColor.GREEN + AppStrings.WARPS_OTHERS + otherOwnedWarpStr);
      }
 else {
        player.sendMessage(ChatColor.AQUA + addonMsgPrefix + ChatColor.GREEN+ AppStrings.AVAILABLE_WARPS_PREFIX+ ChatColor.WHITE+ AppStrings.NO_AVAILABLE_WARPS);
      }
      retVal=true;
    }
  }
 else   retVal=true;
  return retVal;
}