Instead of wrapping in the another collection, should this just add a ```synchronized``` block since it's a ```Collections.synchronizedSet()```?

```java
    synchronized (this.ejbClientContextListeners) {
        for (final EJBClientContextListener listener : this.ejbClientContextListeners) {
            this.ejbClientContextTasksExecutorService.submit(new Runnable() {
                @Override
                public void run() {
                    try {
                        listener.receiverRegistered(ejbReceiverContext);
                    } catch (Throwable t) {
                        // log and ignore
                        logger.debug("Exception trying to invoke EJBClientContextListener " + listener + " for EJB client context " + EJBClientContext.this + " on registertation of EJBReceiver " + receiver, t);
                    }
                }
            });
        }
    }
```