[Demonstration 1]

[Buggy Method]
public synchronized void remove(BookModel product) {
    ShoppingCartItem item = null;
    for (ShoppingCartItem scItem : items) {
        if (scItem.getProduct().getBid() == product.getBid()) {
            item = scItem;
            break;
        }
    }
    if (item != null) {
        // remove from cart
        items.remove(item);
    }
}

[Buggy Hunk]
public synchronized void remove(BookModel product) {

[Patch]
public void remove(BookModel product) {

[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]
public synchronized void resume() {
    if (stepsLimit == 0)
        stepsLimit = -1;
    shouldPause = false;
    while (getStatus() != TestEngineDriverStatus.running) Thread.yield();
}

[Buggy Hunk]
public synchronized void resume() {

[Patch]
public void resume() {