[Demonstration 1]

[Buggy Method]
public List<String> getAllMessages() {
    if (causingExceptions.isEmpty()) {
        return Collections.singletonList(getMessage());
    } else {
        return Lists.newArrayList(Iterables.concat(getAllMessages(causingExceptions)));
    }
}

[Buggy Hunk]
return Lists.newArrayList(Iterables.concat(getAllMessages(causingExceptions)));

[Patch]
return getAllMessages(causingExceptions);

[Demonstration 2]

[Buggy Method]
@Override
public void run() {
    List<IEmail> emails = new ArrayList<>();
    Properties props = new Properties();
    props.setProperty("mail.store.protocol", "imaps");
    Session session = Session.getInstance(props, null);
    try {
        Store store = session.getStore();
        store.connect(getHostname(), username, password);
        // start by getting the default (root) folder, and recursively work through all subfolders
        Folder root = store.getDefaultFolder();
        emails = recursiveFetch(root);
        store.close();
        callback.onSuccess(emails);
    } catch (MessagingException e) {
        callback.onFailure("Failed to fetch email from server");
    }
}

[Buggy Hunk]
List<IEmail> emails = new ArrayList<>();

[Patch]
List<IEmail> emails;

[Demonstration 3]

[Buggy Method]
private MerescoCluster rankCluster(List<MerescoVector> vectors) {
    PageRank pageRank = new PageRank(this.ords.size());
    for (MerescoVector vector : vectors) {
        pageRank.add(vector.docId, vector.getPoint());
    }
    pageRank.prepare();
    for (int i = 0; i < 5; i++) pageRank.iterate();
    MerescoCluster.DocScore[] topDocs = new MerescoCluster.DocScore[vectors.size()];
    int i = 0;
    for (PageRank.Node n : pageRank.topDocs()) {
        topDocs[i++] = new MerescoCluster.DocScore(n.id, n.getPR());
    }
    i = 0;
    List<Node> rankedTerms = pageRank.topTerms();
    MerescoCluster.TermScore[] topTerms = new MerescoCluster.TermScore[rankedTerms.size()];
    for (PageRank.Node n : rankedTerms) {
        BytesRef ref = new BytesRef();
        this.frequentOrds.get(n.id, ref);
        topTerms[i++] = new MerescoCluster.TermScore(ref.utf8ToString(), n.getPR());
    }
    return new MerescoCluster(topDocs, topTerms);
}

[Buggy Hunk]
this.frequentOrds.get(n.id, ref);

[Patch]
this.ords.get(n.id, ref);