When a room is removed , we should remove it from GroupEventDispatcher's listeners,otherwise a memory leak problem will happen.So I create LocalMUCRoomManager to encapsule the room manage functions including remove/query/add which will avoid a direct operation to Map<String,LocalMUCRoom> .This class will duty on removing rooms from GroupEventDispatcher's listeners when a room is removed.
https://github.com/igniterealtime/Openfire/pull/512
When a room is removed , we should remove it from GroupEventDispatcher's listeners,otherwise a memory leak problem will happen.So I create LocalMUCRoomManager to encapsule the room manage functions including remove/query/add which will avoid a direct operation to Map<String,LocalMUCRoom> .This class will duty on removing rooms from GroupEventDispatcher's listeners when a room is removed.