[Demonstration 1]

[Buggy Method]
public void delete(Long productId) {
    dao.delete(productId);
}

[Buggy Hunk]
dao.delete(productId);

[Patch]
productDao.delete(productId);

[Demonstration 2]

[Buggy Method]
private void buildLiveSets() {
    intervalInLoop = new BitMap2D(allocator.operandSize(), allocator.numLoops());
    for (AbstractBlockBase<?> block : cfg.getBlocks()) {
        final BitSet liveGen = new BitSet();
        final BitSet liveKill = new BitSet();
        ValueConsumer useConsumer = (operand, mode, flags) -> {
            if (isVariable(operand) || isRegister(operand)) {
                int operandNum = operandNumber(operand);
                if (!liveKill.get(operandNum)) {
                    liveGen.set(operandNum);
                }
                int regCatNum = getCategoryNumber(operand);
                assert regCatNum >= 0;
                allocator.addValue(operand, operandNum);
                if (block.getLoop() != null) {
                    intervalInLoop.setBit(operandNum, block.getLoop().getIndex());
                }
            }
        };
        ValueConsumer stateConsumer = (operand, mode, flags) -> {
            if (isVariable(operand) || isRegister(operand)) {
                int operandNum = operandNumber(operand);
                if (!liveKill.get(operandNum)) {
                    liveGen.set(operandNum);
                }
                int regCatNum = getCategoryNumber(operand);
                assert regCatNum >= 0;
                allocator.addValue(operand, operandNum);
            }
        };
        ValueConsumer defConsumer = (operand, mode, flags) -> {
            if (isVariable(operand) || isRegister(operand)) {
                int varNum = operandNumber(operand);
                liveKill.set(varNum);
                int regCatNum = getCategoryNumber(operand);
                assert regCatNum >= 0;
                allocator.addValue(operand, varNum);
                if (block.getLoop() != null) {
                    intervalInLoop.setBit(varNum, block.getLoop().getIndex());
                }
            }
        };
        for (LIRInstruction inst : lir.getLIRforBlock(block)) {
            // System.out.println("Instruction: " + inst);
            // try (Indent ident1 = Debug.logAndIndent("inst: %s", inst)) {
            inst.visitEachOutput(defConsumer);
            inst.visitEachTemp(defConsumer);
            inst.visitEachAlive(useConsumer);
            inst.visitEachInput(useConsumer);
            inst.visitEachState(stateConsumer);
            // }
        }
        BlockData data = new BlockData();
        // System.out.println("Block id: " + block.getId() + "\n");
        data.liveGen = liveGen;
        data.liveKill = liveKill;
        data.liveIn = new BitSet();
        data.liveOut = new BitSet();
        blocksets[block.getId()] = data;
    }
    // for (AbstractBlockBase<?> block : cfg.getBlocks())
}

[Buggy Hunk]
for (AbstractBlockBase<?> block : cfg.getBlocks()) {

[Patch]
for (AbstractBlockBase<?> block : blocks) {

[Demonstration 3]

[Buggy Method]
public <T> T get(ANY instance, int fieldIndex) {
    if (isInvokeWithMethodHandle.get())
        return invokeWithMethodHandle(instance, fieldIndex, GETTER);
    return accessor.get(instance, fieldIndex);
}

[Buggy Hunk]
return accessor.get(instance, fieldIndex);

[Patch]
return accessor.get(Modifier.isStatic(classInfo.fieldModifiers[fieldIndex]) ? null : instance, fieldIndex);