I found that MUC occupants are removed prematurely in the following situation with OpenFire 3.7.0:
- Join a MUC room using BOSH. This will result in a presence with a full JID such as firstname.lastname@example.org/61ef51b5
- Kill the BOSH connection hard (without leaving the MUC room)
- Join the same MUC room with the same nickname, again using BOSH. This will result in a second presence with a different JID such as email@example.com/e4a9752b
- After 60 seconds, the first HTTP connection will time out, causing the first JID (firstname.lastname@example.org/61ef51b5) to leave the MUC room
- Even though the second JID (email@example.com/e4a9752b) is still in the room, the user “moderator” has been removed from the occupants list.
Am I correct in assuming that this is a bug? If so, I believe it can be fixed with the attached patch.
Added patch against 3.7.1.
openfire_muc_occupants_removed_prematurely.patch.zip (618 Bytes)
openfire_muc_occupants_removed_prematurely_3_7_1.patch.zip (638 Bytes)