[Demonstration 1]

[Buggy Method]
protected ObjectStreamField[] getFields(Class<?> clazz) {
    ObjectStreamField[] fields = null;
    ClassInfo classInfo = null;
    Integer classId = class2classId.get(clazz);
    if (classId != null) {
        classInfo = registered.get(classId);
        fields = classInfo.getObjectStreamFields();
    }
    if (fields == null) {
        ObjectStreamClass streamClass = ObjectStreamClass.lookup(clazz);
        FastArrayList<ObjectStreamField> fieldsList = new FastArrayList<ObjectStreamField>();
        while (streamClass != null) {
            for (ObjectStreamField f : streamClass.getFields()) {
                fieldsList.add(f);
            }
            clazz = clazz.getSuperclass();
            streamClass = ObjectStreamClass.lookup(clazz);
        }
        fields = new ObjectStreamField[fieldsList.size];
        System.arraycopy(fieldsList.data, 0, fields, 0, fields.length);
        if (classInfo != null)
            classInfo.setObjectStreamFields(fields);
    }
    return fields;
}

[Buggy Hunk]
streamClass = ObjectStreamClass.lookup(clazz);

[Patch]
streamClass = clazz != null ? ObjectStreamClass.lookup(clazz) : null;

[Demonstration 2]

[Buggy Method]
@EventHandler
public void onInteract(PlayerInteractEvent e) {
    if (e.getClickedBlock().getType() == Material.SIGN_POST || e.getClickedBlock().getType() == Material.WALL_SIGN) {
        Sign sign = (Sign) e.getClickedBlock().getState();
        if (sign.getLine(0).equalsIgnoreCase(ChatManager.message("kit-sign-prefix"))) {
            if (PermissionsManager.ifPlayerHasPermission(e.getPlayer(), "zerokits.kit." + sign.getLine(1))) {
                if (ConfigManager.getPublicKitFile(sign.getLine(1)).exists()) {
                    if (CooldownManager.isInCooldown(e.getPlayer().getUniqueId(), sign.getLine(1).toLowerCase())) {
                        e.getPlayer().sendMessage(ChatManager.format("still-cooldown").replace("%e", String.valueOf(CooldownManager.getTimeLeft(e.getPlayer().getUniqueId(), sign.getLine(1).toLowerCase()))));
                    } else {
                        if (ConfigManager.getMainConfig().getBoolean("Clear Inventory before Kit") == true) {
                            e.getPlayer().getInventory().clear();
                        }
                        KitManager.recieveKit(sign.getLine(1), "public", e.getPlayer());
                        if (!PermissionsManager.ifPlayerHasPermission(e.getPlayer(), "zerokits.bypasscooldown")) {
                            CooldownManager c = new CooldownManager(e.getPlayer().getUniqueId(), sign.getLine(1).toLowerCase(), ConfigManager.getPublicKitConfig(sign.getLine(1).toLowerCase()).getInt("delay"));
                            c.start();
                        }
                        e.getPlayer().sendMessage(ChatManager.format("kit-recieved").replace("%e", sign.getLine(1).toLowerCase()));
                    }
                } else {
                    e.getPlayer().sendMessage(ChatManager.format("kit-doesnt-exist").replace("%e", sign.getLine(1).toLowerCase()));
                }
            } else {
                e.getPlayer().sendMessage(ChatManager.format("no-permission"));
            }
        } else if (sign.getLine(0).equalsIgnoreCase(ChatManager.message("preview-sign-prefix"))) {
            if (PermissionsManager.ifPlayerHasPermission(e.getPlayer(), "zerokits.previewkit." + sign.getLine(1).toLowerCase())) {
                if (ConfigManager.getPublicKitFile(sign.getLine(1).toLowerCase()).exists()) {
                    KitManager.previewKit(sign.getLine(1).toLowerCase(), "public", e.getPlayer());
                } else {
                    e.getPlayer().sendMessage(ChatManager.format("kit-doesnt-exist").replace("%e", sign.getLine(1).toLowerCase()));
                }
            } else {
                e.getPlayer().sendMessage(ChatManager.format("no-permission"));
            }
        } else if (sign.getLine(0).equalsIgnoreCase(ChatColor.DARK_AQUA + "[" + ChatColor.DARK_GREEN + "Soup" + ChatColor.DARK_AQUA + "]")) {
            if (ConfigManager.getMainConfig().getBoolean("Enable Soup Signs") == true) {
                Inventory inv = Bukkit.createInventory(null, 27, "Free Soup");
                for (int i = 0; i < 27; i++) {
                    inv.addItem(new ItemStack(Material.MUSHROOM_SOUP, 1));
                }
                e.getPlayer().openInventory(inv);
            }
        }
    } else {
        if (e.getItem().getType() == Material.MUSHROOM_SOUP && e.getPlayer().getHealth() != 20.0D) {
            if (e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) {
                if (ConfigManager.getMainConfig().getBoolean("Enable Soup Signs") == true) {
                    e.getPlayer().setHealth(e.getPlayer().getHealth() + 6 > e.getPlayer().getMaxHealth() ? e.getPlayer().getMaxHealth() : e.getPlayer().getHealth() + 6);
                    e.getItem().setType(Material.BOWL);
                }
            }
        }
    }
}

[Buggy Hunk]
if (e.getClickedBlock().getType() == Material.SIGN_POST || e.getClickedBlock().getType() == Material.WALL_SIGN) {

[Patch]
if (e.getClickedBlock().getState() instanceof Sign) {

[Demonstration 3]

[Buggy Method]
@Override
public void visitToken(DetailAST ast) {
    DetailAST init = ast.getFirstChild().getNextSibling();
    String var = getVarAssignedWithZero(init);
    if (var == null) {
        return;
    }
    DetailAST condition = init.getNextSibling().getNextSibling();
    String array = getArrayName(condition);
    if (array == null) {
        return;
    }
    DetailAST postExpr = condition.getNextSibling().getNextSibling();
    if (!isSingleIncrement(postExpr)) {
        return;
    }
    DetailAST loopBody = postExpr.getNextSibling().getNextSibling();
    if (loopBody.getType() == TokenTypes.EXPR) {
        loopBody = loopBody.getParent();
    }
    if (!loopBodyContainsDifficultExpr(loopBody, array, var)) {
        log(ast, "You should use 'foreach loop' instead 'for'");
    }
}

[Buggy Hunk]
if (!isSingleIncrement(postExpr)) {

[Patch]
if (!isSingleIncrement(postExpr, var)) {