[Demonstration 1]

[Buggy Method]
public void run() {
    exec.shutdown();
    try {
        if (exec.awaitTermination(10, TimeUnit.SECONDS)) {
            System.out.println("Saving files...");
            saveObjects(visited, "visited");
            saveObjects(keywords, "keywords");
            saveObjects(toBeVisited, "toBeVisited");
            System.out.println("Saved files");
        }
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

[Buggy Hunk]
if (exec.awaitTermination(10, TimeUnit.SECONDS)){

[Patch]
if (exec.awaitTermination(2*SOCKET_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS)){

[Demonstration 2]

[Buggy Method]
@Override
public Item getItemDropped(IBlockState metadata, Random random, int fortune) {
    return Item.getItemFromBlock(Block.getBlockById(1));
}

[Buggy Hunk]
return Item.getItemFromBlock(Block.getBlockById(1));

[Patch]
return Item.getItemFromBlock(Block.getBlockFromName(this.getRegistryName()));

[Demonstration 3]

[Buggy Method]
private void query() {
    // Construct the query
    QueryManager queryMgr = client.newQueryManager();
    //StringQueryDefinition query = queryMgr.newStringDefinition();
    //query.setDirectory(DOC_DIR);
    //query.setCriteria(SEARCH_QUERY);
    StructuredQueryBuilder builder = queryMgr.newStructuredQueryBuilder();
    StructuredQueryDefinition query = builder.and(builder.directory(true, DOC_DIR), builder.containerQuery(builder.element(new QName(ELT_NS, ELT_NAME)), builder.term(SEARCH_QUERY)));
    // Create and configure the batcher
    DataMovementManager dmm = client.newDataMovementManager();
    QueryBatcher batcher = dmm.newQueryBatcher(query);
    batcher.onUrisReady(batch -> {
        for (String uri : batch.getItems()) {
            System.out.println(uri);
        }
    }).onQueryFailure(exception -> exception.printStackTrace());
    // Start the job
    dmm.startJob(batcher);
    // Wait for the job to complete, and then stop it.
    batcher.awaitCompletion();
    dmm.stopJob(batcher);
}

[Buggy Hunk]
builder.containerQuery(builder.element(new QName(ELT_NS, ELT_NAME)), builder.term(SEARCH_QUERY))

[Patch]
builder.value(builder.element(new QName(ELT_NS, ELT_NAME)), SEARCH_QUERY)