[Demonstration 1]

[Buggy Method]
@SuppressWarnings("unchecked")
private static ChainResolver toChainResolver(JkRepos repos) {
    final ChainResolver chainResolver = new ChainResolver();
    for (final JkRepo jkRepo : repos) {
        final DependencyResolver resolver = toResolver(jkRepo, Collections.EMPTY_SET);
        resolver.setName(jkRepo.toString());
        chainResolver.add(resolver);
    }
    return chainResolver;
}

[Buggy Hunk]
final DependencyResolver resolver = toResolver(jkRepo, Collections.EMPTY_SET);

[Patch]
final DependencyResolver resolver = toResolver(jkRepo, Collections.EMPTY_SET, true);

[Demonstration 2]

[Buggy Method]
public static void main(String[] args) throws ParseException, frontend.generated.ParseException, IOException {
    BasicParser parser = new BasicParser();
    Options cliOptions = getCliOptions();
    CommandLine options = parser.parse(cliOptions, args);
    if (options.hasOption("h")) {
        new HelpFormatter().printHelp("RamCompiler", cliOptions);
        return;
    }
    Program root = null;
    InputStream in = System.in;
    if (options.hasOption('i'))
        in = new FileInputStream(new File(options.getOptionValue('i')));
    try {
        // Parser constructor must be invoked for side-effect
        new frontend.generated.RamParser(in);
        root = RamParser.Goal();
    } finally {
        if (in != System.in)
            in.close();
    }
    // build symbol table
    BuildSymbolTableVisitor symbolTableVisitor = new BuildSymbolTableVisitor();
    root.accept(symbolTableVisitor);
    // perform type checking
    TypeCheckVisitor typeChecker = new TypeCheckVisitor(symbolTableVisitor.getSymTab());
    root.accept(typeChecker);
    if (typeChecker.getErrorMsg().getHasErrors()) {
        System.out.println("Error in front-end. Exiting.");
        System.exit(1);
    }
    PrintStream ps = System.out;
    if (options.hasOption('o'))
        ps = new PrintStream(new java.io.FileOutputStream(options.getOptionValue('o')));
    IrGenerator irGenerator = new IrGenerator(symbolTableVisitor.getSymTab());
    root.accept(irGenerator);
    if (options.hasOption('k') && !options.getOptionValue('f').toUpperCase().equals("X64")) {
        System.out.println("'k' paramter available only for X64 output.");
        System.exit(1);
    }
    if (options.getOptionValue('f').toUpperCase().equals("IR")) {
        IrWriter irWriter = new IrWriter(ps);
        for (RecordDeclaration recDec : irGenerator.getRecordList()) {
            irWriter.printRecordDeclaration(recDec);
        }
        for (FunctionDeclaration funcDec : irGenerator.getFrameList()) {
            irWriter.printFunction(funcDec);
        }
    } else if (options.getOptionValue('f').toUpperCase().equals("X64")) {
        compileX64(irGenerator.getRecordList(), irGenerator.getFrameList(), ps);
    } else {
        Visitor visitor = getVisitorForFormatString(options.getOptionValue('f'), ps, symbolTableVisitor.getSymTab());
        root.accept(visitor);
    }
    ps.close();
}

[Buggy Hunk]
compileX64(irGenerator.getRecordList(), irGenerator.getFrameList(), ps);

[Patch]
compileX64(irGenerator.getRecordList(), irGenerator.getFrameList(), ps, options );

[Demonstration 3]

[Buggy Method]
public String errorsToString(Iterable<CqlTranslatorException> exceptions) {
    ArrayList<String> errors = new ArrayList<>();
    for (CqlTranslatorException error : exceptions) {
        TrackBack tb = error.getLocator();
        String lines = tb == null ? "[n/a]" : String.format("%s[%d:%d, %d:%d]", (tb.getLibrary() != null ? tb.getLibrary().getId() + (tb.getLibrary().getVersion() != null ? ("-" + tb.getLibrary().getVersion()) : "") : ""), tb.getStartLine(), tb.getStartChar(), tb.getEndLine(), tb.getEndChar());
        errors.add(lines + error.getMessage());
    }
    return errors.toString();
}

[Buggy Hunk]
errors.add(lines + error.getMessage());

[Patch]
errors.add(lines + error.getMessage() + "\n");