I don’t think anyone has seen this problem before - and as such there is no fix, as yet - but thanks for the analysis, that’s often half the battle!
I think the key to fixing it is probably instead of calling
CacheFactory.doClusterTask(new RoomAvailableEvent(room));
calling
CacheFactory.doSynchronousClusterTask(new RoomAvailableEvent(room), false);
and calling .get()
on the Future that it returns.That way you can be sure the other node has created the room before the OccupantAddedEvent is triggered.
Greg