[Demonstration 1]

[Buggy Method]
@Test
public void testGetMinTemp() {
    double avgTemp = 5.0;
    double devTemp = 1.1;
    double minTemp = 2.2;
    double maxTemp = 3.3;
    double expectedMinTemp = 2.2;
    TempSummaryStatistics statistics = new TempSummaryStatistics(avgTemp, devTemp, minTemp, maxTemp);
    double actualMinTemp = statistics.getAvgTemp();
    assertEquals(expectedMinTemp, actualMinTemp, EPS);
}

[Buggy Hunk]
double actualMinTemp = statistics.getAvgTemp();

[Patch]
double actualMinTemp = statistics.getMinTemp();

[Demonstration 2]

[Buggy Method]
public static void dumpIf(String name, @Nullable Object obj, Predicate<String> evalPredicate, Predicate<Map.Entry<String, Object>> dumpPredicate, StringPrinter printer) {
    Objects.requireNonNull(name);
    Objects.requireNonNull(dumpPredicate);
    Objects.requireNonNull(printer);
    printer.println(name + ": " + obj.getClass().getName());
    fieldsAndGetters(obj, evalPredicate).filter(dumpPredicate).forEach(entry -> {
        printer.println("\t" + entry.getKey() + " = " + entry.getValue());
    });
}

[Buggy Hunk]
printer.println(name + ": " + obj.getClass().getName());

[Patch]
printer.println(name + ": " + getClassNullable(obj).getName());

[Demonstration 3]

[Buggy Method]
protected void visitOmpAwaitConstruct(OmpAwaitConstruct n) {
    ScopeInfo currentOmpAwaitConstructScopeInfo = visitor.getSymbolTable().getScopeOfNode(n);
    List<OmpAwaitFunctionCallDeclaration> functions = n.getAwaitFunctions();
    AsyncFunctionCallSubstitutionVisitor substitutionVisitor = new AsyncFunctionCallSubstitutionVisitor(currentOmpAwaitConstructScopeInfo, functions);
    substitutionVisitor.getPriter().setIndentLevel(printer.getIndentLevel());
    n.getBody().accept(substitutionVisitor, substitutionVisitor.getPriter());
    for (AsyncFunctionCallSubstitutionVisitor.SubstitutionInfo substitution : substitutionVisitor.getSubstitutionInfos()) {
        String stateMachineCall = substitution.resultAwaiter;
        String methodScope = substitution.methodScope;
        String methodCall = substitution.methodCall;
        //Declare this auxiliary awaiter variable as statemachine field variable.
        LinkedList<VariableDeclarator> declarators = new LinkedList<VariableDeclarator>();
        declarators.add(new VariableDeclarator(new VariableDeclaratorId(stateMachineCall)));
        this.variableDeclarations.add(new VariableDeclarationExpr(new ClassOrInterfaceType(substitution.returnType), declarators));
        printer.printLn(stateMachineCall + " = " + methodScope + "new " + stateMachineIdentifier + methodCall + ";");
        printer.printLn(stateMachineCall + ".setOnCompleteCall(this, PjRuntime.getVirtualTargetOfCurrentThread());");
        printer.printLn("PjRuntime.runTaskDirectly(" + stateMachineCall + ");");
        printer.printLn("if (false == PjRuntime.checkFinish(" + stateMachineCall + "))  {");
        printer.indent();
        printer.printLn("this.OMP_state++;");
        printer.printLn("return null;");
        printer.unindent();
        printer.printLn("} else {");
        printer.indent();
        printer.printLn("this.OMP_state++;");
        printer.unindent();
        printer.printLn("}");
        stateCounter++;
        printer.unindent();
        printer.printLn("case " + stateCounter + ":");
        printer.indent();
    }
    this.variableDeclarations.addAll(substitutionVisitor.getVariableDeclarations());
    printer.printLn(substitutionVisitor.getSource());
}

[Buggy Hunk]
this.variableDeclarations.addAll(substitutionVisitor.getVariableDeclarations());

[Patch]
variableDeclarations.addAll(substitutionVisitor.getVariableDeclarations());