[Demonstration 1]

[Buggy Method]
@Override
public void actualizar() {
    juego.getCamara().setxOffset(-350);
    juego.getCamara().setyOffset(150);
    seRealizoAccion = false;
    haySpellSeleccionada = false;
    if (miTurno) {
        if (juego.getHandlerMouse().getNuevoClick()) {
            posMouse = juego.getHandlerMouse().getPosMouse();
            if (menuBatalla.clickEnMenu(posMouse[0], posMouse[1])) {
                if (menuBatalla.getBotonClickeado(posMouse[0], posMouse[1]) == 1) {
                    if (personaje.puedeAtacar()) {
                        seRealizoAccion = true;
                        personaje.habilidadRaza1(enemigo);
                    }
                    haySpellSeleccionada = true;
                }
                if (menuBatalla.getBotonClickeado(posMouse[0], posMouse[1]) == 2) {
                    if (personaje.puedeAtacar()) {
                        seRealizoAccion = true;
                        personaje.habilidadRaza2(enemigo);
                    }
                    haySpellSeleccionada = true;
                }
                if (menuBatalla.getBotonClickeado(posMouse[0], posMouse[1]) == 3) {
                    if (personaje.puedeAtacar()) {
                        seRealizoAccion = true;
                        personaje.habilidadCasta1(enemigo);
                    }
                    haySpellSeleccionada = true;
                }
                if (menuBatalla.getBotonClickeado(posMouse[0], posMouse[1]) == 4) {
                    if (personaje.puedeAtacar()) {
                        seRealizoAccion = true;
                        personaje.habilidadCasta2(enemigo);
                    }
                    haySpellSeleccionada = true;
                }
                if (menuBatalla.getBotonClickeado(posMouse[0], posMouse[1]) == 5) {
                    if (personaje.puedeAtacar()) {
                        seRealizoAccion = true;
                        personaje.habilidadCasta3(enemigo);
                    }
                    haySpellSeleccionada = true;
                }
                if (menuBatalla.getBotonClickeado(posMouse[0], posMouse[1]) == 6) {
                    seRealizoAccion = true;
                    personaje.serEnergizado(10);
                    haySpellSeleccionada = true;
                }
            }
            if (haySpellSeleccionada && seRealizoAccion) {
                if (!enemigo.estaVivo()) {
                    juego.getEstadoJuego().setHaySolicitud(true, juego.getPersonaje(), MenuInfoPersonaje.menuGanarBatalla);
                    if (personaje.ganarExperiencia(enemigo.getNivel() * 40)) {
                        juego.getPersonaje().setNivel(personaje.getNivel());
                        juego.getPersonaje().setPuntosSkill(personaje.getPuntosSkill() + 3);
                        juego.getEstadoJuego().setHaySolicitud(true, juego.getPersonaje(), MenuInfoPersonaje.menuSubirNivel);
                    }
                    paqueteFinalizarBatalla.setGanadorBatalla(juego.getPersonaje().getId());
                    finalizarBatalla();
                    Estado.setEstado(juego.getEstadoJuego());
                } else {
                    paqueteAtacar = new PaqueteAtacar(paquetePersonaje.getId(), paqueteEnemigo.getId(), personaje.getSalud(), personaje.getEnergia(), enemigo.getSalud(), enemigo.getEnergia(), personaje.getDefensa(), enemigo.getDefensa(), personaje.getCasta().getProbabilidadEvitarDaño(), enemigo.getCasta().getProbabilidadEvitarDaño());
                    enviarAtaque(paqueteAtacar);
                    miTurno = false;
                    menuBatalla.setHabilitado(false);
                }
            } else if (haySpellSeleccionada && !seRealizoAccion) {
                JOptionPane.showMessageDialog(null, "No posees la energía suficiente para realizar esta habilidad.");
            }
            juego.getHandlerMouse().setNuevoClick(false);
        }
    }
}

[Buggy Hunk]
juego.getPersonaje().setPuntosSkill(personaje.getPuntosSkill()+3);

[Patch]
juego.getPersonaje().setPuntosSkill(personaje.getPuntosSkill());

[Demonstration 2]

[Buggy Method]
private static Object[] limit(String testString) {
    Object[] result = { false, none, none };
    Pattern pattern = Pattern.compile("^db\\.[a-zA-Z0-9]+\\.find\\(\\)\\.limit\\([0-9]+\\)$");
    Pattern name = Pattern.compile("(?<=db\\.)(.*)(?=\\.find\\(\\)\\.limit\\()");
    Pattern number = Pattern.compile("(?<=\\.find\\(\\)\\.limit\\()(.*)(?=\\)$)");
    Matcher patternMatch = pattern.matcher(testString);
    Matcher nameMatch = name.matcher(testString);
    Matcher numberMatch = number.matcher(testString);
    if (patternMatch.matches()) {
        result[0] = true;
        nameMatch.find();
        result[1] = nameMatch.group();
        numberMatch.find();
        result[2] = numberMatch.group();
    }
    return result;
}

[Buggy Hunk]
result[2] = numberMatch.group();

[Patch]
result[2] = Integer.parseInt(numberMatch.group());

[Demonstration 3]

[Buggy Method]
private void doStuff(User user) {
    ApiHandler.getInstance().masterToggle(new Arguments().setUseVoice(true).setUser(user));
}

[Buggy Hunk]
private void doStuff(User user) {

[Patch]
public void doStuff(User user) {