I have a two-node clustered Openfire 4.2.3 started first and an external component having a client (“focus”) connecting to the senior node. The client creates a MUC room “jibribrewery” and updates the room with the owner/moderator occupant info. However, there are three fields (occupantsByFullJID, occupantsByBaredJID, occupantsByNickname) in LocalMUCRoom.java not serialized in the RoomUpdatedEvent, so the non-senior XMPP node does not populate the remote room completely. The Openfire console in the senior node shows the room having one occupant (the owner/moderator.) But in the non-senior node, the Openfire console shows the room with zero occupants (the maps in occupantsByFullJID, occupantsByBaredJID, occupantsByNickname are empty.)
If I started an XMPP node and the external component to create and join the room first, then having the 2nd node joins the cluster later, the room is populated with the occupant correctly. It seems that LocalMUCRoom.occupantAdded() was used and it did the right job.
Does anyone have any fix for this problem?