[Demonstration 1]

[Buggy Method]
private void sendBonusPointToWonTeam(String team, String displayName) {
    // ボーナスポイント設定を取得。0なら何もしないで終わる
    int bonus = battlepoints.getBPConfig().getWinTeamBonusPoint();
    if (bonus <= 0) {
        return;
    }
    // 勝利チームのメンバーを取得する
    ArrayList<String> playerNames = new ArrayList<String>();
    for (String name : membersCache.keySet()) {
        if (membersCache.get(name).equals(team)) {
            playerNames.add(name);
        }
    }
    // 勝利チームのメンバーが誰もいないならここで終わる
    if (playerNames.size() == 0) {
        return;
    }
    // ボーナスポイントを与える
    for (String name : playerNames) {
        @SuppressWarnings("deprecation")
        Player player = Bukkit.getPlayerExact(name);
        if (player == null) {
            continue;
        }
        battlepoints.addPoint(getOfflinePlayer(name), bonus);
        BPUserData data = BPUserData.getData(getOfflinePlayer(name));
        sendMessage(player, "teamWonBonus", displayName, bonus, data.getPoint());
    }
    // メンバーのキャッシュをクリアする
    membersCache.clear();
}

[Buggy Hunk]
BPUserData data = BPUserData.getData(getOfflinePlayer(name));

[Patch]
BPUserData data = BPUserData.getDataFromName(name);

[Demonstration 2]

[Buggy Method]
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    if (sendPermissionMessage(sender, "v3ld1n.push"))
        return true;
    if (PlayerUtil.getOnlinePlayer(args[0]) == null) {
        sendInvalidPlayerMessage(sender);
        return true;
    }
    Player player = PlayerUtil.getOnlinePlayer(args[0]);
    if (args.length == 4) {
        double speedX, speedY, speedZ;
        try {
            speedX = Double.parseDouble(args[1]);
            speedY = Double.parseDouble(args[2]);
            speedZ = Double.parseDouble(args[3]);
        } catch (Exception e) {
            Message.get("push-invalid-speed").send(sender);
            return true;
        }
        pushInDirection(player, speedX, speedY, speedZ, sender);
        return true;
    } else if (args.length == 2 || args.length == 3) {
        if (PlayerUtil.getOnlinePlayer(args[1]) == null) {
            sendInvalidPlayerMessage(sender);
            return true;
        }
        Player toPlayer = PlayerUtil.getOnlinePlayer(args[1]);
        if (!StringUtil.isDouble(args[0])) {
            Message.get("push-invalid-speed").send(sender);
            return true;
        }
        double speed = Double.parseDouble(args[2]);
        pushToPlayer(player, toPlayer, speed, sender);
        return true;
    }
    this.sendUsage(sender);
    return true;
}

[Buggy Hunk]
if (PlayerUtil.getOnlinePlayer(args[0]) == null) {

[Patch]
if (args.length > 0 && PlayerUtil.getOnlinePlayer(args[0]) == null) {

[Demonstration 3]

[Buggy Method]
private static void sendAmqpMessage(int id, AmqpTemplate sender) {
    UserDetail userDetail = new UserDetail();
    userDetail.setUserActive(id % 2 == 1 ? false : true);
    userDetail.setUserEmail(String.format("testuser%d@test.org", id));
    userDetail.setUserId(123 + id);
    userDetail.setUserName(String.format("testuser%d", id));
    sender.convertAndSend("testQueue2", userDetail);
}

[Buggy Hunk]
sender.convertAndSend("testQueue2", userDetail);

[Patch]
sender.convertAndSend("test-exchange2", "org.hanbo.amqp.test2", userDetail);