public void publishMessages() { Iterator<String> itr = serializedMessages.iterator(); while (itr.hasNext()) { String message = itr.next(); for (Session session : sessions) { session.push(key, message); } itr.remove(); } synchronized (this) { submittedForPublishing = false; if (!serializedMessages.isEmpty()) { submitForPublishing(); } } }