[Demonstration 1]

[Buggy Method]
@EventHandler
public void onPickUpItem(PlayerPickupItemEvent event) {
    if (getWeapon().isWeapon(event.getItem().getItemStack())) {
        CvCPlayer player = getPlugin().getServerCvCPlayer().getPlayer(event.getPlayer());
        if (!player.getWeapon(getWeapon().getClass()).getType().equals(Material.AIR)) {
            event.setCancelled(true);
            return;
        }
        int bulletAmount = 0;
        if (event.getItem().hasMetadata("bulletAmount")) {
            MetaData metaData = new MetaData(event.getItem(), getPlugin());
            bulletAmount = (int) metaData.getMetadata("bulletAmount");
        } else {
            bulletAmount = player.getPlayerBullet().getBullet(getWeapon().getName()).getMaxBullet();
        }
        player.getWeapon(getWeapon().getClass()).setAmount(bulletAmount);
        ItemStack itemStack = event.getItem().getItemStack();
        getPlugin().getServer().getScheduler().runTaskLater(getPlugin(), new Runnable() {

            @Override
            public void run() {
                player.getWeapon(getWeapon().getClass()).setAmount(player.getPlayerBullet().getBullet(getWeapon().getName()).getBulletCount());
            }
        }, 1);
    }
}

[Buggy Hunk]
if (!player.getWeapon(getWeapon().getClass()).getType().equals(Material.AIR)) {

[Patch]
if (player.getWeapon(getWeapon().getClass()).getType() != Material.AIR) {

[Demonstration 2]

[Buggy Method]
public void handleMessage(Message msg) {
    if (System.currentTimeMillis() - mLastTouchTime > DELAY_TIME) {
        if (mCurrentCharacter != null) {
            DataManager.getInstance().addCharacter(mCurrentCharacter);
            mCurrentCharacter = null;
            mCharacterBitmap = Bitmap.createBitmap(getWidth(), getHeight(), Bitmap.Config.ARGB_8888);
            mCharacterCanvas = new Canvas(mCharacterBitmap);
            invalidate();
        }
    }
}

[Buggy Hunk]
if (System.currentTimeMillis() - mLastTouchTime > DELAY_TIME) {

[Patch]
if (System.currentTimeMillis() - mLastTouchTime > DELAY_TIME/2) {

[Demonstration 3]

[Buggy Method]
public void setColors(int[] colors) {
    // TODO: selected color can be NOT in set of colors
    // FIXME: colors can be null
    this.colors = colors;
    if (!containsColor(colors, selectedColor)) {
        selectedColor = colors[0];
    }
    cellSize = Math.round(getWidth() / (colors.length * 1f));
    invalidate();
}

[Buggy Hunk]
cellSize = Math.round(getWidth() / (colors.length * 1f));

[Patch]
recalcCellSize();