[Demonstration 1]

[Buggy Method]
public List<List<Integer>> threeSum(int[] nums) {
    List<List<Integer>> res = new ArrayList<>();
    //step1 sort
    Arrays.sort(nums);
    //step2 loop
    for (int i = 0; i < nums.length - 2; i++) {
        //pointer
        int j = i + 1;
        int k = nums.length - 1;
        if (i > 0 && nums[i] == nums[i - 1])
            continue;
        while (k > j) {
            System.out.println(nums[i] + "," + nums[j] + "," + nums[k] + ";" + i + "," + j + "," + k);
            if (nums[i] + nums[j] + nums[k] == 0) {
                //output one row
                List<Integer> row = new ArrayList<Integer>();
                row.add(nums[i]);
                row.add(nums[j]);
                row.add(nums[k]);
                res.add(row);
                j++;
                k--;
                while (nums[j] == nums[j - 1]) j++;
                while (nums[k] == nums[k + 1]) k--;
            } else if (nums[i] + nums[j] + nums[k] > 0) {
                k--;
            } else if (nums[i] + nums[j] + nums[k] < 0) {
                j++;
            }
        }
    }
    return res;
}

[Buggy Hunk]
List<List<Integer>> res = new ArrayList<>();

[Patch]
List<List<Integer>> res = new ArrayList<List<Integer>>();

[Demonstration 2]

[Buggy Method]
public Inventory CreateJobsSubGUI(Player player, Job job) {
    Inventory tempInv = Bukkit.createInventory(null, 54, "");
    ItemStack GuiItem = job.getGuiItem();
    JobsPlayer JPlayer = Jobs.getPlayerManager().getJobsPlayer(player);
    Boost boost = Jobs.getPlayerManager().getFinalBonus(JPlayer, job);
    int level = 1;
    JobProgression prog = JPlayer.getJobProgression(job);
    if (prog != null)
        level = prog.getLevel();
    int numjobs = JPlayer.getJobProgression().size();
    List<ItemStack> items = new ArrayList<ItemStack>();
    int i = 0;
    for (ActionType actionType : ActionType.values()) {
        List<JobInfo> info = job.getJobInfo(actionType);
        if (info == null || info.isEmpty())
            continue;
        ArrayList<String> Lore = new ArrayList<String>();
        Lore.add(ChatColor.translateAlternateColorCodes('&', "&e" + Jobs.getLanguage().getMessage("command.info.output." + actionType.getName().toLowerCase() + ".info")));
        int y = 1;
        for (int z = 0; z < info.size(); z++) {
            String itemName = Jobs.getNameTranslatorManager().Translate(info.get(z).getName(), info.get(z));
            double income = info.get(z).getIncome(level, numjobs);
            income = income + (income * boost.getFinal(CurrencyType.MONEY));
            ChatColor incomeColor = income >= 0 ? ChatColor.GREEN : ChatColor.DARK_RED;
            double xp = info.get(z).getExperience(level, numjobs);
            xp = xp + (xp * boost.getFinal(CurrencyType.EXP));
            ChatColor xpColor = xp >= 0 ? ChatColor.YELLOW : ChatColor.GRAY;
            String xpString = String.format("%.2fxp", xp);
            Lore.add(ChatColor.translateAlternateColorCodes('&', "&7" + itemName + " " + xpColor + xpString + " " + incomeColor + Jobs.getEconomy().format(income)));
            if (y >= 10) {
                y = 1;
                if (z == info.size() - 1)
                    continue;
                ItemMeta meta = GuiItem.getItemMeta();
                meta.setDisplayName(job.getName());
                meta.setLore(Lore);
                GuiItem.setItemMeta(meta);
                //GuiInv.setItem(i, GuiItem);
                tempInv.setItem(i, GuiItem);
                GuiItem = job.getGuiItem();
                Lore = new ArrayList<String>();
                Lore.add(ChatColor.translateAlternateColorCodes('&', "&e" + Jobs.getLanguage().getMessage("command.info.output." + actionType.getName().toLowerCase() + ".info")));
                i++;
            }
            y++;
        }
        ItemMeta meta = GuiItem.getItemMeta();
        meta.setDisplayName(job.getName());
        meta.setLore(Lore);
        GuiItem.setItemMeta(meta);
        //GuiInv.setItem(i, GuiItem);
        tempInv.setItem(i, GuiItem);
        i++;
    }
    for (ItemStack one : tempInv.getContents()) {
        if (one != null)
            items.add(one);
    }
    int GuiSize = 54;
    int backButton = 45;
    String title = Jobs.getLanguage().getMessage("command.info.gui.jobinfo", "[jobname]", job.getName());
    if (title.length() > 32)
        title = title.substring(0, 30) + "..";
    Inventory GuiInv = Bukkit.createInventory(null, GuiSize, title);
    for (int i1 = 0; i1 < items.size(); i1++) {
        GuiInv.setItem(i1, items.get(i1));
    }
    ItemStack skull = Jobs.getGCManager().guiBackButton;
    ItemMeta skullMeta = skull.getItemMeta();
    skullMeta.setDisplayName(Jobs.getLanguage().getMessage("command.info.gui.back"));
    skull.setItemMeta(skullMeta);
    GuiInv.setItem(backButton, skull);
    GuiInfoList guiInfo = new GuiInfoList(player.getName());
    guiInfo.setJobInfo(true);
    guiInfo.setbackButton(backButton);
    GuiList.put(player.getName(), guiInfo);
    ItemStack filler = Jobs.getGCManager().guiFiller;
    for (int y = 0; y < GuiInv.getContents().length; y++) {
        ItemStack item = GuiInv.getItem(y);
        if (item == null || item.getType() == Material.AIR)
            GuiInv.setItem(y, filler);
    }
    return GuiInv;
}

[Buggy Hunk]
for (int y = 0; y < GuiInv.getContents().length; y++) {

[Patch]
for (int y = 0; y < GuiInv.getSize(); y++) {

[Demonstration 3]

[Buggy Method]
public Object[] getParameters() throws RAFException {
    List<RAFParameter> rafParameters = route.getParameters();
    List<Object> objects = new ArrayList<Object>();
    for (RAFParameter rafParameter : rafParameters) {
        String paramValue = req.getParameter(rafParameter.getParameterName());
        // check mandatory parameter
        if (paramValue == null && rafParameter.isMandatory()) {
            throw new RAFException(RAFException.ERRCODE_INVALID_PARAMETER_VALUE, String.format("Parameter %s is mandatory", rafParameter.getParameterName()));
        } else if (paramValue != null) {
            objects.add(getValue(rafParameter.getClazz(), rafParameter, paramValue));
        } else {
            // add null (or default value parameter)
            if (rafParameter.getDefaultValue() != null) {
                objects.add(getValue(rafParameter.getClazz(), rafParameter, rafParameter.getDefaultValue()));
            } else {
                objects.add(getNullOrZero(rafParameter.getClazz()));
            }
        }
    }
    return objects.toArray(new Object[0]);
}

[Buggy Hunk]
if (rafParameter.getDefaultValue() != null) {

[Patch]
if (!rafParameter.getDefaultValue().equalsIgnoreCase(Globals.DEFAULT_UNASSIGNED_PARAMETER)) {