[Demonstration 1]

[Buggy Method]
public ServiceResponse<SolverInstance> getBestSolution(String containerId, String solverId) {
    try {
        SolverInstanceContext sic = solvers.get(SolverInstance.getSolverInstanceKey(containerId, solverId));
        if (sic != null) {
            updateSolverInstance(sic);
            sic.getInstance().setBestSolution(sic.getSolver().getBestSolution());
            return new ServiceResponse<SolverInstance>(ServiceResponse.ResponseType.SUCCESS, "Best computed solution for '" + solverId + "' successfully retrieved from container '" + containerId + "'", sic.getInstance());
        } else {
            return new ServiceResponse<SolverInstance>(ServiceResponse.ResponseType.FAILURE, "Solver '" + solverId + "' not found in container '" + containerId + "'", null);
        }
    } catch (Exception e) {
        logger.error("Error retrieving solver '" + solverId + "' state from container '" + containerId + "'", e);
        return new ServiceResponse<SolverInstance>(ServiceResponse.ResponseType.FAILURE, "Error retrieving solver '" + solverId + "' state from container '" + containerId + "'" + e.getMessage(), null);
    }
}

[Buggy Hunk]
sic.getInstance().setBestSolution( sic.getSolver().getBestSolution() );

[Patch]
sic.getInstance().setBestSolution((Solution)  sic.getSolver().getBestSolution() );

[Demonstration 2]

[Buggy Method]
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onPvP(EntityDamageByEntityEvent event) {
    if (checkWorld(event))
        return;
    if (event.getDamager() instanceof Player) {
        //DAMAGER IS PLAYER
        Player damager = (Player) event.getDamager();
        if (plugin.isProtected(damager)) {
            if (event.getEntity() instanceof Player) {
                //DAMAGER PROTECTED HITS PLAYER
                event.setCancelled(true);
                damager.sendMessage(plugin.prefix + plugin.lang("cannotHurtWhileProtected", plugin.getTimeLeft((Player) event.getEntity())));
            }
        }
    } else if (event.getDamager() instanceof Projectile) {
        //DAMAGER IS PROJECTILE
        LivingEntity shooter = ((Projectile) event.getDamager()).getShooter();
        if (shooter instanceof Player && event.getEntity() instanceof Player) {
            //DAMAGER IS PLAYER - HURT IS PLAYER
            Player pShooter = (Player) shooter;
            if (pShooter.getName().equals(((Player) event.getEntity()).getName())) {
                //same player => enderpearl!
                return;
            }
            if (plugin.isProtected(pShooter)) {
                //DAMAGER PROTECTED HITS OTHER PLAYER (PROJECTILE)
                event.setCancelled(true);
                pShooter.sendMessage(plugin.prefix + (plugin.lang("cannotHurtWhileProtected", plugin.getTimeLeft(pShooter))));
            } else {
                //HURT IS PLAYER
                Player hurtPlayer = (Player) event.getEntity();
                if (plugin.isProtected(hurtPlayer)) {
                    //PLAYER HITS PROTECTED (PROJECTILE)
                    event.setCancelled(true);
                    pShooter.sendMessage(plugin.cannotHurt);
                }
            }
        }
    }
    if (event.getEntity() instanceof Player && !event.isCancelled()) {
        //HURT IS PLAYER
        Player hurtPlayer = (Player) event.getEntity();
        if (plugin.isProtected(hurtPlayer)) {
            //damage by entity
            //HURT IS PROTECTED, DISALLOW ALL DAMAGE IF CONFIG
            if (config.getString("damageType").equalsIgnoreCase("all"))
                event.setCancelled(true);
            else if (event.getDamager() instanceof Player) {
                //damage by player
                //DAMAGER PLAYER HURTS PLAYER
                event.setCancelled(true);
                Player damager = (Player) event.getDamager();
                damager.sendMessage(plugin.cannotHurt);
            }
        }
    }
}

[Buggy Hunk]
LivingEntity shooter = ((Projectile)event.getDamager()).getShooter();

[Patch]
LivingEntity shooter = (LivingEntity) ((Projectile)event.getDamager()).getShooter();

[Demonstration 3]

[Buggy Method]
@SuppressWarnings("deprecation")
@EventHandler
public void onProjectileLaunch(ProjectileLaunchEvent event) {
    try {
        if (!(event.getEntity().getType() == EntityType.ARROW)) {
            return;
        }
        Projectile projectile = event.getEntity();
        Arrow arrow = (Arrow) projectile;
        if (!(arrow.isCritical())) {
            return;
        }
        if (projectile.getShooter().equals(plugin.getServer().getPlayer("alisolarflare"))) {
            AliArrowTask aliArrowTask = new AliArrowTask(plugin, arrow, "alisolarflare");
            aliArrowTask.runTaskTimer(plugin, 2, 1);
            return;
        } else if (!(projectile.getShooter().equals(plugin.getServer().getPlayer("Zanthr")))) {
            AliArrowTask aliArrowTask = new AliArrowTask(plugin, arrow, "alisolarflare");
            aliArrowTask.runTaskTimer(plugin, 2, 1);
            return;
        }
        return;
    } catch (Exception e) {
        return;
    }
}

[Buggy Hunk]
}else if (!(projectile.getShooter().equals(plugin.getServer().getPlayer("Zanthr")))){

[Patch]
}else if (projectile.getShooter().equals(plugin.getServer().getPlayer("Zanthr"))){