[Demonstration 1]

[Buggy Method]
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void onPlayerBucketEmpty(PlayerBucketEmptyEvent event) {
    Player player = event.getPlayer();
    BukkitLocation location = new BukkitLocation(event.getBlockClicked().getLocation());
    if (!player.hasPermission(PermissionNames.ADMIN_BUILDANYWHERE)) {
        if (manager.isPlotWorld(location)) {
            String id = manager.getPlotId(location);
            if (id.isEmpty()) {
                player.sendMessage(api.getUtil().C("ErrCannotBuild"));
                event.setCancelled(true);
            } else {
                PlotToClear ptc = api.getPlotLocked(location.getWorld().getName(), id);
                if (ptc != null) {
                    switch(ptc.getReason()) {
                        case Clear:
                            player.sendMessage(api.getUtil().C("MsgPlotLockedClear"));
                            break;
                        case Reset:
                            player.sendMessage(api.getUtil().C("MsgPlotLockedReset"));
                            break;
                        case Expired:
                            player.sendMessage(api.getUtil().C("MsgPlotLockedExpired"));
                            break;
                    }
                    event.setCancelled(true);
                } else {
                    Plot plot = manager.getPlotById(id, location.getWorld());
                    if (plot == null || !plot.isAllowed(player.getName(), player.getUniqueId())) {
                        player.sendMessage(api.getUtil().C("ErrCannotBuild"));
                        event.setCancelled(true);
                    }
                }
            }
        }
    }
}

[Buggy Hunk]
BukkitLocation location = new BukkitLocation(event.getBlockClicked().getLocation());

[Patch]
BukkitLocation location = new BukkitLocation(event.getBlockClicked().getLocation().add(event.getBlockFace().getModX(), event.getBlockFace().getModY(), event.getBlockFace().getModZ()));

[Demonstration 2]

[Buggy Method]
public void loadFromReadableMap(ReadableMap readableMap) {
    if (readableMap.hasKey("id"))
        id = readableMap.getInt("id");
    if (readableMap.hasKey("subject"))
        subject = readableMap.getString("subject");
    if (readableMap.hasKey("message"))
        message = readableMap.getString("message");
    if (readableMap.hasKey("action"))
        action = readableMap.getString("action");
    if (readableMap.hasKey("payload"))
        payload = readableMap.getString("payload");
    if (readableMap.hasKey("delayed"))
        delayed = readableMap.getBoolean("delayed");
    if (readableMap.hasKey("delay"))
        delay = readableMap.getInt("delay");
    if (readableMap.hasKey("scheduled"))
        scheduled = readableMap.getBoolean("scheduled");
    if (readableMap.hasKey("sendAt"))
        sendAt = Long.parseLong(readableMap.getString("sendAt"));
    if (readableMap.hasKey("sendAtYear"))
        sendAtYear = readableMap.getInt("sendAtYear");
    if (readableMap.hasKey("sendAtMonth"))
        sendAtMonth = readableMap.getInt("sendAtMonth");
    if (readableMap.hasKey("sendAtDay"))
        sendAtDay = readableMap.getInt("sendAtDay");
    if (readableMap.hasKey("sendAtWeekDay"))
        sendAtWeekDay = readableMap.getInt("sendAtWeekDay");
    if (readableMap.hasKey("sendAtHour"))
        sendAtHour = readableMap.getInt("sendAtHour");
    if (readableMap.hasKey("sendAtMinute"))
        sendAtMinute = readableMap.getInt("sendAtMinute");
    if (readableMap.hasKey("repeatEvery"))
        repeatEvery = readableMap.getString("repeatEvery");
    if (readableMap.hasKey("repeatType"))
        repeatType = readableMap.getString("repeatType");
    if (readableMap.hasKey("repeatTime"))
        repeatTime = readableMap.getInt("repeatTime");
    if (readableMap.hasKey("repeatCount"))
        repeatCount = readableMap.getInt("repeatCount");
    if (readableMap.hasKey("endAt"))
        endAt = Long.parseLong(readableMap.getString("endAt"));
    if (readableMap.hasKey("priority"))
        priority = readableMap.getInt("priority");
    if (readableMap.hasKey("smallIcon"))
        smallIcon = readableMap.getString("smallIcon");
    if (readableMap.hasKey("largeIcon"))
        largeIcon = readableMap.getString("largeIcon");
    if (readableMap.hasKey("sound"))
        sound = readableMap.getString("sound");
    if (readableMap.hasKey("vibrate"))
        vibrate = readableMap.getString("vibrate");
    if (readableMap.hasKey("lights"))
        lights = readableMap.getString("lights");
    if (readableMap.hasKey("autoClear"))
        autoClear = readableMap.getBoolean("autoClear");
    else
        autoClear = true;
    if (readableMap.hasKey("onlyAlertOnce"))
        onlyAlertOnce = readableMap.getBoolean("onlyAlertOnce");
    if (readableMap.hasKey("tickerText"))
        tickerText = readableMap.getString("tickerText");
    if (readableMap.hasKey("when"))
        when = Long.parseLong(readableMap.getString("when"));
    if (readableMap.hasKey("bigText"))
        bigText = readableMap.getString("bigText");
    if (readableMap.hasKey("bigStyleImageBase64"))
        bigStyleImageBase64 = readableMap.getString("bigStyleImageBase64");
    if (readableMap.hasKey("subText"))
        subText = readableMap.getString("subText");
    if (readableMap.hasKey("progress"))
        progress = readableMap.getInt("progress");
    if (readableMap.hasKey("color"))
        color = readableMap.getString("color");
    if (readableMap.hasKey("number"))
        number = readableMap.getInt("number");
    if (readableMap.hasKey("category"))
        category = readableMap.getString("category");
    if (readableMap.hasKey("localOnly"))
        localOnly = readableMap.getBoolean("localOnly");
    if (readableMap.hasKey("inboxStyle")) {
        inboxStyle = true;
        ReadableMap inboxStyle = readableMap.getMap("inboxStyle");
        inboxStyleBigContentTitle = inboxStyle.getString("bigContentTitle");
        inboxStyleSummaryText = inboxStyle.getString("summaryText");
        ReadableArray inboxLines = inboxStyle.getArray("lines");
        inboxStyleLines = new ArrayList<>();
        for (int i = 0; i < inboxLines.size(); i++) {
            inboxStyleLines.add(inboxLines.getString(i));
        }
    } else {
        inboxStyle = false;
    }
}

[Buggy Hunk]
if (readableMap.hasKey("priority")) priority = readableMap.getInt("priority");

[Patch]
if (readableMap.hasKey("priority")) priority = readableMap.getDouble("priority");

[Demonstration 3]

[Buggy Method]
public void render(Graphics2D g2d) {
    g2d.clearRect(0, 0, width, height);
    g2d.setColor(Color.GREEN);
    for (Entity e : snake) {
        e.render(g2d);
    }
    g2d.setColor(Color.RED);
    apple.render(g2d);
    if (gameover) {
        g2d.drawString("GameOver!", 150, 200);
    }
    g2d.setColor(Color.YELLOW);
    poison.render(g2d);
    if (gameover) {
        g2d.drawString("GameOver!", 150, 200);
    }
    g2d.setColor(Color.WHITE);
    g2d.drawString("score: " + Score + " Level: " + level, 10, 10);
    if (dx == 0 && dy == 0) {
        g2d.drawString("Ready!", 150, 200);
    }
}

[Buggy Hunk]
g2d.drawString("score: " + Score + " Level: " + level, 10, 10);

[Patch]
g2d.drawString("snake size:" + SnakeSize + "  Level: " + level +"  Score: "+ score, 10, 10);