Looking at the usage of this plain HashMap from ClusteredSessionHandler, there will be problems if someone changes the map

    private void handleCrossContextSessions(SessionReplicationContext ctx) {
        .....
        Map sessions = ctx.getCrossContextSessions();
        if (sessions != null && sessions.size() > 0) {
            for (Iterator it = sessions.entrySet().iterator(); it.hasNext(); ) {
                Map.Entry entry = (Map.Entry) it.next();
                ((SnapshotManager) entry.getValue()).snapshot((ClusteredSession) entry.getKey());
            }
        }
    }