[Demonstration 1]

[Buggy Method]
public void copyTemplate(Stage stage, Ports ports) throws Exception {
    FileNode shared;
    shared = stage.shared();
    Files.template(world.resource("templates/stage"), shared, variables(stage, ports));
    // manually create empty subdirectories, because git doesn't know them
    for (String dir : new String[] { "ssl", "run" }) {
        Files.stoolDirectory(shared.join(dir).mkdirOpt());
    }
}

[Buggy Hunk]
for (String dir : new String[] {"ssl", "run"}) {

[Patch]
for (String dir : new String[] {"ssl", "run", "log"}) {

[Demonstration 2]

[Buggy Method]
@Override
public List<ProcessingJob> getDiffusedJobsWithState(JobPriority jobPriority, JobState jobState, Page page, Map<String, Integer> ipDistribution, Map<String, Boolean> ipsWithJobs) {
    final List<ProcessingJob> processingJobs = new ArrayList<>();
    for (Map.Entry<String, Integer> ip : ipDistribution.entrySet()) {
        final Query<ProcessingJob> query = datastore.find(ProcessingJob.class);
        query.criteria("priority").equal(jobPriority);
        query.criteria("state").equal(jobState);
        query.criteria("ipAddress").equal(ip.getKey());
        query.limit(page.getLimit());
        final List<ProcessingJob> temp = query.asList();
        if (temp.size() == 0) {
            ipsWithJobs.put(ip.getKey(), false);
        } else {
            ipsWithJobs.put(ip.getKey(), true);
        }
        processingJobs.addAll(temp);
    }
    return processingJobs;
}

[Buggy Hunk]
query.criteria("priority").equal(jobPriority);

[Patch]
query.criteria("priority").equal(jobPriority.getPriority());

[Demonstration 3]

[Buggy Method]
@Override
public List<GSUser> getFullList(String nameLike, Integer page, Integer entries, boolean fetchGroups) throws BadRequestServiceEx {
    if ((page != null && entries == null) || (page == null && entries != null)) {
        throw new BadRequestServiceEx("Page and entries params should be declared together.");
    }
    Search searchCriteria = new Search(GSUser.class);
    if (page != null) {
        searchCriteria.setMaxResults(entries);
        searchCriteria.setPage(page);
    }
    if (fetchGroups) {
        searchCriteria.addFetch("userGroups");
    }
    searchCriteria.addSortAsc("name");
    if ((nameLike != null) && !(nameLike.isEmpty())) {
        searchCriteria.addFilterILike("name", nameLike);
    }
    List<GSUser> found = userDAO.search(searchCriteria);
    return found;
}

[Buggy Hunk]
searchCriteria.addFilterILike("name", nameLike);

[Patch]
searchCriteria.addFilterILike("name", "%".concat(nameLike).concat("%"));