Program: 24647
Project: 24647
Buggy source:
private void parseActions(String[] actions) throws BadActionRequestException {
  for (  String action : actions) {
    String[] tokens=action.split("String_Node_Str");
    String cmd=tokens[0];
    Player player=getPlayerByName(tokens[1]);
    if (player == null)     throw new BadActionRequestException("String_Node_Str" + tokens[1]);
    int value=0;
    try {
      value=Integer.parseInt(tokens[2]);
    }
 catch (    NumberFormatException e) {
      throw new BadActionRequestException("String_Node_Str" + tokens[2]);
    }
switch (cmd) {
case ATTR_UP:
      player.increaseAttr(value);
    break;
case EQUIP:
  GameItem item=player.getInventory().getItem(value);
if (item != null) {
  if (item instanceof Weapon) {
    player.equipWeapon((Weapon)item);
  }
 else   if (item instanceof Armor) {
    player.equipArmor((Armor)item);
  }
 else   throw new BadActionRequestException("String_Node_Str" + value);
}
 else throw new BadActionRequestException("String_Node_Str" + value);
break;
case UNEQUIP:
player.unEquipItem(value);
break;
case REFINE:
GameItem itemToRefine=player.getInventory().getItem(value);
if (itemToRefine != null) {
if (itemToRefine instanceof EquippableItem) {
((EquippableItem)itemToRefine).refine();
}
 else throw new BadActionRequestException("String_Node_Str" + value);
}
 else throw new BadActionRequestException("String_Node_Str" + value);
break;
default :
throw new BadActionRequestException("String_Node_Str" + tokens[0]);
}
}
}

Fixed version (ground truth):
private void parseActions(String[] actions) throws BadActionRequestException {
  for (  String action : actions) {
    String[] tokens=action.split("String_Node_Str");
    String cmd=tokens[0];
    Player player=getPlayerByName(tokens[1]);
    if (player == null)     throw new BadActionRequestException("String_Node_Str" + tokens[1]);
    int value=0;
    try {
      value=Integer.parseInt(tokens[2]);
    }
 catch (    NumberFormatException e) {
      throw new BadActionRequestException("String_Node_Str" + tokens[2]);
    }
    int value2=0;
    if (tokens.length == 4) {
      try {
        value2=Integer.parseInt(tokens[3]);
      }
 catch (      NumberFormatException e) {
        throw new BadActionRequestException("String_Node_Str" + tokens[2]);
      }
    }
switch (cmd) {
case ATTR_UP:
      player.increaseAttr(value);
    break;
case EQUIP:
  GameItem item=player.getInventory().getItem(value);
if (item != null) {
  if (item instanceof Weapon) {
    player.equipWeapon((Weapon)item);
  }
 else   if (item instanceof Armor) {
    player.equipArmor((Armor)item);
  }
 else   throw new BadActionRequestException("String_Node_Str" + value);
}
 else throw new BadActionRequestException("String_Node_Str" + value);
break;
case UNEQUIP:
player.unEquipItem(value);
break;
case REFINE:
GameItem itemToRefine=player.getInventory().getItem(value);
if (itemToRefine != null) {
if (itemToRefine instanceof EquippableItem) {
((EquippableItem)itemToRefine).refine();
}
 else throw new BadActionRequestException("String_Node_Str" + value);
}
 else throw new BadActionRequestException("String_Node_Str" + value);
break;
case SKILL_USE:
GameCharacter target=getGameCharacterByRuntimeID(value2);
if (target != null) player.useSkill(value,target);
break;
default :
throw new BadActionRequestException("String_Node_Str" + tokens[0]);
}
}
}