[Demonstration 1]

[Buggy Method]
public NLGElement getNLForTripleList(List<Triple> triples, String conjunction) {
    if (triples.isEmpty()) {
        return null;
    }
    if (triples.size() == 1) {
        return getNLForTriple(triples.get(0));
    } else {
        CoordinatedPhraseElement cpe;
        Triple t0 = triples.get(0);
        Triple t1 = triples.get(1);
        cpe = nlgFactory.createCoordinatedPhrase(getNLForTriple(t0), getNLForTriple(t1));
        for (int i = 2; i < triples.size(); i++) {
            cpe.addComplement(getNLForTriple(triples.get(i)));
        }
        cpe.setConjunction(conjunction);
        return cpe;
    }
}

[Buggy Hunk]
cpe.addComplement(getNLForTriple(triples.get(i)));

[Patch]
cpe.addCoordinate(getNLForTriple(triples.get(i)));

[Demonstration 2]

[Buggy Method]
List<Triple> searchCandidatesByUrl(final String url, final boolean searchInSurfaceFormsToo) {
    final ArrayList<Triple> tmp2 = new ArrayList<Triple>();
    final ArrayList<Triple> finalTmp = new ArrayList<Triple>();
    ArrayList<Triple> candidatesScore = new ArrayList<Triple>();
    if (popularity) {
        final List<Triple> tmp = index.search(url, "http://www.w3.org/2000/01/rdf-schema#label", null, 500);
        for (final Triple c : tmp) {
            tmp2.add(new Triple(c.getSubject(), c.getPredicate(), c.getObject()));
            final String uri = c.getSubject().replace(nodeType, "");
            candidatesScore = searchCandidatesByScore(uri);
            c.setPredicate(c.getObject());
            if (candidatesScore.isEmpty()) {
                c.setObject("1");
            } else {
                c.setObject(candidatesScore.get(0).getObject());
            }
        }
        Collections.sort(tmp);
        if (tmp.size() < 100) {
            for (final Triple triple : tmp.subList(0, tmp.size())) {
                for (final Triple triple2 : tmp2) {
                    if (triple.getSubject().equals(triple2.getSubject()) && triple.getPredicate().equals(triple2.getObject())) {
                        finalTmp.add(triple2);
                        continue;
                    }
                }
            }
        } else if (tmp.size() >= 100) {
            for (final Triple triple : tmp.subList(0, 100)) {
                for (final Triple triple2 : tmp2) {
                    if (triple.getSubject().equals(triple2.getSubject()) && triple.getPredicate().equals(triple2.getObject())) {
                        finalTmp.add(triple2);
                        continue;
                    }
                }
            }
        }
        return finalTmp;
    } else {
        return index.search(url, "http://www.w3.org/2000/01/rdf-schema#label", null);
    }
}

[Buggy Hunk]
final ArrayList<Triple> tmp2 = new ArrayList<Triple>();

[Patch]
final List<Triple> tmp2 = Lists.newLinkedList();

[Demonstration 3]

[Buggy Method]
@Override
public AstNode visitRightApplicationTerm(LpToJvmParser.RightApplicationTermContext ctx) {
    return new ApplicationNode(visit(ctx.lambdaTerm(0)), visit(ctx.lambdaTerm(1)));
}

[Buggy Hunk]
return new ApplicationNode(visit(ctx.lambdaTerm(0)), visit(ctx.lambdaTerm(1)));

[Patch]
return new ApplicationNode(visit(ctx.lambdaTerm(1)), visit(ctx.lambdaTerm(0)));