[Demonstration 1]

[Buggy Method]
public void send(String msg) throws IOException {
    if (session != null && session.isOpen()) {
        session.getBasicRemote().sendText(msg);
    } else {
        ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
        exec.schedule(new ResendTask(this, msg), 5, TimeUnit.SECONDS);
    }
}

[Buggy Hunk]
exec.schedule(new ResendTask(this, msg), 5, TimeUnit.SECONDS);

[Patch]
exec.schedule(new ResendTask(this, msg), 1, TimeUnit.SECONDS);

[Demonstration 2]

[Buggy Method]
public void registerResource(FlexoResource<?> resource) {
    if (resource.getResourceCenter() == null) {
        logger.warning("Resource belonging to no ResourceCenter: " + resource);
        // Thread.dumpStack();
    }
    if (!resources.contains(resource)) {
        resources.add(resource);
        getServiceManager().notify(this, new ResourceRegistered(resource, null));
    } else {
        logger.info("Resource already registered: " + resource);
    }
    if (resource.getURI() == null) {
        logger.info("Resource with null URI: " + resource);
        resource.getURI();
        Thread.dumpStack();
    }
}

[Buggy Hunk]
public void registerResource(FlexoResource<?> resource) {

[Patch]
public synchronized void registerResource(FlexoResource<?> resource) {

[Demonstration 3]

[Buggy Method]
@Override
public void onCreate() {
    Log.i(TAG, "ON CREATE COMMAND");
    executor = Executors.newSingleThreadExecutor();
    uploadJobsStorage = new UploadJobsStorage(this);
}

[Buggy Hunk]
executor = Executors.newSingleThreadExecutor();

[Patch]
executor = Executors.newFixedThreadPool(4);