Atmosphere/atmosphere — Issue #127: DefaultBroadcaster will lost message on a session invalidated
Author: survivant
Created: 2011-12-16 19:38:11+00:00
State: open

In this loop (around line 502)..
for (AtmosphereResource r : resources) {
finalMsg = perRequestFilter(r, entry); //HERE

if (finalMsg == null) {
logger.debug("Skipping broadcast delivery resource {} ", r);
continue;
}

if (entry.writeLocally) {
queueWriteIO(r, finalMsg, entry);
}
}

perRequestFilter will call : trackBroadcastMessage(r, finalMsg);

In my case, I used a SessionBroadcasterCache to cache the messages.

When I got a session that is invalidated it will throw a : java.lang.IllegalStateException.

because of that, the message will be lost for ALL the resources after the one that crashed.

it should continue to broadcast the message to others Resources.