From e1e52c4a4dd2fe352e98436bcd7e4d2f92ecb145 Mon Sep 17 00:00:00 2001 From: Damian Minkov Date: Tue, 21 Jan 2014 11:42:52 +0200 Subject: [PATCH] Fixes leaking ChatRoomWrapper instances as configuration listeners, will cause leaking xmpp connection instances. --- .../sip/communicator/impl/muc/ChatRoomListImpl.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/net/java/sip/communicator/impl/muc/ChatRoomListImpl.java b/src/net/java/sip/communicator/impl/muc/ChatRoomListImpl.java index e8055d3c8..20634dc90 100644 --- a/src/net/java/sip/communicator/impl/muc/ChatRoomListImpl.java +++ b/src/net/java/sip/communicator/impl/muc/ChatRoomListImpl.java @@ -286,8 +286,16 @@ private void removeChatProvider(ChatRoomProviderWrapper chatRoomProvider, } for(int i = 0; i < chatRoomProvider.countChatRooms(); i++) - MUCActivator.getUIService().closeChatRoomWindow( - chatRoomProvider.getChatRoom(i)); + { + ChatRoomWrapper wrapper = chatRoomProvider.getChatRoom(i); + MUCActivator.getUIService().closeChatRoomWindow(wrapper); + + // clears listeners added by chat room + wrapper.removeListeners(); + } + + // clears listeners added by the system chat room + chatRoomProvider.getSystemRoomWrapper().removeListeners(); fireProviderWrapperRemoved(chatRoomProvider); }