Program: 1999
Project: 1999
Buggy source:
/** 
 * Alters the selected trader's balance depending on the arguments given. Balance is used for iConomy.
 * @param player
 * @param npc
 * @param args
 * @throws NumberFormatException
 */
private void changeBalance(Player player,HumanNPC npc,String[] args) throws NumberFormatException {
  try {
    double amount=Double.parseDouble(args[2]);
    if (args[1].equals("String_Node_Str")) {
      if (EconomyHandler.canBuy(new Payment(amount,true),player)) {
        EconomyHandler.pay(new Payment(-amount,true),npc,-1);
        EconomyHandler.pay(new Payment(amount,true),player,-1);
        player.sendMessage(ChatColor.GREEN + "String_Node_Str" + StringUtils.yellowify(IconomyInterface.getCurrency(amount))+ "String_Node_Str"+ StringUtils.yellowify(npc.getStrippedName())+ "String_Node_Str"+ StringUtils.yellowify(IconomyInterface.getCurrency(player.getName()),ChatColor.GREEN)+ "String_Node_Str");
      }
 else {
        player.sendMessage(ChatColor.RED + "String_Node_Str" + "String_Node_Str"+ StringUtils.yellowify(IconomyInterface.getCurrency(amount - IconomyInterface.getBalance(player.getName())),ChatColor.RED)+ "String_Node_Str");
      }
    }
 else     if (args[1].equals("String_Node_Str")) {
      if (EconomyHandler.canBuy(new Payment(amount,true),npc)) {
        EconomyHandler.pay(new Payment(amount,true),npc,-1);
        EconomyHandler.pay(new Payment(-amount,true),player,-1);
        player.sendMessage(ChatColor.GREEN + "String_Node_Str" + StringUtils.yellowify(IconomyInterface.getCurrency(amount))+ "String_Node_Str"+ StringUtils.yellowify(npc.getStrippedName())+ "String_Node_Str"+ StringUtils.yellowify(IconomyInterface.getBalance(player.getName()))+ "String_Node_Str");
      }
 else {
        player.sendMessage(ChatColor.RED + "String_Node_Str" + StringUtils.yellowify(IconomyInterface.getCurrency(amount - npc.getBalance()),ChatColor.RED)+ "String_Node_Str");
      }
    }
 else     player.sendMessage(ChatColor.RED + "String_Node_Str" + StringUtils.yellowify(args[1],ChatColor.RED)+ "String_Node_Str");
  }
 catch (  NumberFormatException e) {
    player.sendMessage(ChatColor.RED + "String_Node_Str");
  }
}

Fixed version (ground truth):
/** 
 * Alters the selected trader's balance depending on the arguments given. Balance is used for iConomy.
 * @param player
 * @param npc
 * @param args
 * @throws NumberFormatException
 */
private void changeBalance(Player player,HumanNPC npc,String[] args){
  double amount;
  try {
    amount=Double.parseDouble(args[2]);
  }
 catch (  NumberFormatException e) {
    player.sendMessage(ChatColor.RED + "String_Node_Str");
    return;
  }
  if (args[1].contains("String_Node_Str")) {
    if (EconomyHandler.canBuy(new Payment(amount,true),player)) {
      EconomyHandler.pay(new Payment(-amount,true),npc,-1);
      EconomyHandler.pay(new Payment(amount,true),player,-1);
      player.sendMessage(ChatColor.GREEN + "String_Node_Str" + StringUtils.yellowify(IconomyInterface.getCurrency(amount))+ "String_Node_Str"+ StringUtils.yellowify(npc.getStrippedName())+ "String_Node_Str"+ StringUtils.yellowify(IconomyInterface.getFormattedBalance(player.getName()),ChatColor.GREEN)+ "String_Node_Str");
    }
 else {
      player.sendMessage(ChatColor.RED + "String_Node_Str" + "String_Node_Str"+ StringUtils.yellowify(IconomyInterface.getCurrency(amount - IconomyInterface.getBalance(player.getName())),ChatColor.RED)+ "String_Node_Str");
    }
  }
 else   if (args[1].contains("String_Node_Str")) {
    if (EconomyHandler.canBuy(new Payment(amount,true),npc)) {
      EconomyHandler.pay(new Payment(amount,true),npc,-1);
      EconomyHandler.pay(new Payment(-amount,true),player,-1);
      player.sendMessage(ChatColor.GREEN + "String_Node_Str" + StringUtils.yellowify(IconomyInterface.getCurrency(amount))+ "String_Node_Str"+ StringUtils.yellowify(npc.getStrippedName())+ "String_Node_Str"+ StringUtils.yellowify(IconomyInterface.getFormattedBalance(player.getName()))+ "String_Node_Str");
    }
 else {
      player.sendMessage(ChatColor.RED + "String_Node_Str" + StringUtils.yellowify(IconomyInterface.getCurrency(amount - npc.getBalance()),ChatColor.RED)+ "String_Node_Str");
    }
  }
 else   player.sendMessage(ChatColor.RED + "String_Node_Str" + StringUtils.yellowify(args[1],ChatColor.RED)+ "String_Node_Str");
}