[Demonstration 1]

[Buggy Method]
private void awaitMavenResolver(Runnable task) throws Exception {
    CountDownLatch latch = new CountDownLatch(2);
    ServiceListener listener = new ServiceListener() {

        @Override
        public void serviceChanged(ServiceEvent event) {
            if (event.getType() == ServiceEvent.UNREGISTERING || event.getType() == ServiceEvent.REGISTERED) {
                latch.countDown();
            }
        }
    };
    bundleContext.addServiceListener(listener, "(objectClass=org.ops4j.pax.url.mvn.MavenResolver)");
    try {
        task.run();
        assertTrue(latch.await(5, TimeUnit.SECONDS));
    } finally {
        bundleContext.removeServiceListener(listener);
    }
}

[Buggy Hunk]
CountDownLatch latch = new CountDownLatch(2);

[Patch]
final CountDownLatch latch = new CountDownLatch(2);

[Demonstration 2]

[Buggy Method]
public List<MovieDb> getSearchRes(final String srch, final int page) {
    List<MovieDb> searchRes = search.searchMovie(srch, 0, "en", true, page).getResults();
    return searchRes;
}

[Buggy Hunk]
public List<MovieDb> getSearchRes(final String srch, final int page) {

[Patch]
public final List<MovieDb> getSearchRes(final String srch, final int page) {

[Demonstration 3]

[Buggy Method]
@Test
public void testDeleteEvent() throws Exception {
    Event eventToDelete = new Event("New DeletableEvent", "Nowhere", "org1", now, now, "Nowhere", "Other", 100);
    final CountDownLatch latch = new CountDownLatch(2);
    final OnCompleteListener<Void> onDelete = new OnCompleteListener<Void>() {

        @Override
        public void onComplete(@NonNull Task<Void> task) {
            assertEquals(true, task.isSuccessful());
            latch.countDown();
        }
    };
    OnCompleteListener<String> onCompleteListener = new OnCompleteListener<String>() {

        @Override
        public void onComplete(@NonNull Task task) {
            assertEquals(true, task.isSuccessful());
            latch.countDown();
            String key = (String) task.getResult();
            EventUtils.deleteEvent("org1", key, onDelete);
        }
    };
    EventUtils.createEvent(eventToDelete, onCompleteListener);
    try {
        latch.await();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

[Buggy Hunk]
Event eventToDelete = new Event("New DeletableEvent", "Nowhere", "org1", now, now,

[Patch]
Event eventToDelete = new Event("New DeletableEvent", "Nowhere", "helloevent", "org1", now, now,