[Demonstration 1]

[Buggy Method]
public void prepare(CameraSetting cameraSetting) {
    int[] textures = new int[1];
    GLES20.glGenTextures(1, textures, 0);
    int mSurfaceTextureId = textures[0];
    mSurfaceTexture = new SurfaceTexture(mSurfaceTextureId);
    mSurfaceView.setEGLContextClientVersion(2);
    mRenderer = new HardSurfaceRenderer(mSurfaceView.getContext(), mSurfaceTexture, mSurfaceTextureId);
    //    mSurfaceView.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
    mSurfaceView.setRenderer(mRenderer);
    cameraSetting.setSurfaceTexture(mSurfaceTexture);
    mSurfaceTexture.setOnFrameAvailableListener(this);
    mCamera = new Camera9(cameraSetting);
    mRenderer.setCamera(mCamera);
    mSurfaceView.getHolder().addCallback(this);
}

[Buggy Hunk]
mRenderer = new HardSurfaceRenderer(mSurfaceView.getContext(), mSurfaceTexture, mSurfaceTextureId);

[Patch]
mRenderer = new SurfaceRenderer(mSurfaceView.getContext(), mSurfaceTexture, mSurfaceTextureId);

[Demonstration 2]

[Buggy Method]
public static int parseMinuteFromString(String time, String parseFormat) {
    try {
        SimpleDateFormat sdf = new SimpleDateFormat(parseFormat);
        Date date = sdf.parse(time);
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
        return calendar.get(Calendar.MINUTE);
    } catch (Exception exception) {
        return 0;
    }
}

[Buggy Hunk]
calendar.setTimeInMillis(System.currentTimeMillis());

[Patch]
calendar.setTime(date);

[Demonstration 3]

[Buggy Method]
@EventHandler
public void onInteract(PlayerInteractEvent event) {
    if ((event.getAction() != Action.RIGHT_CLICK_BLOCK && event.getAction() != Action.RIGHT_CLICK_AIR) || event.getItem() == null || event.getItem().getType() == Material.AIR)
        return;
    if (shiftRequired && !event.getPlayer().isSneaking())
        return;
    ItemStack item = event.getItem();
    if (!item.hasItemMeta())
        return;
    ItemMeta meta = item.getItemMeta();
    String commands = NMSUtil.getNBTString(meta, "commands");
    if (commands == null)
        return;
    List<String> commandList = this.commands.get(commands);
    commandList.stream().map(s -> s.replace("{player}", event.getPlayer().getName())).forEach(command -> {
        if (command.startsWith("C~")) {
            Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), command.substring(2));
            return;
        }
        if (command.startsWith("O~")) {
            Player player = event.getPlayer();
            boolean wasOp = player.isOp();
            try {
                Bukkit.dispatchCommand(player, command.substring(2));
            } catch (Throwable throwable) {
                player.setOp(wasOp);
                throw throwable;
            }
            player.setOp(wasOp);
            return;
        }
        Bukkit.dispatchCommand(event.getPlayer(), command);
    });
    if (item.getAmount() == 1)
        item = new ItemStack(Material.AIR);
    else
        item.setAmount(item.getAmount() - 1);
    if (event.getHand() == EquipmentSlot.HAND)
        event.getPlayer().getInventory().setItemInMainHand(item);
    else
        event.getPlayer().getInventory().setItemInOffHand(item);
}

[Buggy Hunk]
item = new ItemStack(Material.AIR);

[Patch]
item = null;