Possible memory leak in RosterElement
The current implementation of
RosterElement keeps the instance of
XMPPResourceConnection even though it is not needed anywhere and access to this variable is private.
Moreover, due to fact that roster is cached in
XMPPSession it is possible that instance referenced in
RosterElement is no longer needed as it was closed but cached entry is kept as other resource is online. Due to that, we may have in memory instances of
XMPPResourceConnection which are no longer needed and should be garbage collected.
#2 Updated by Andrzej Wójcik over 1 year ago
- Status changed from New to In QA
- Assignee changed from Andrzej Wójcik to Wojciech Kapcia
- % Done changed from 0 to 100
I've found this during work on issue #6087.
As I reviewed code this instance is not needed anywhere, so I've removed it and modified
RosterElement constructors to remove it.
I've updated source code so that our code will use new constructors. I've left parameter with
XMPPResourceConnection in the method used for creation of
RosterElement instances in case if someone would extend it and would like to have an instance of
XMPPResourceConnection in his own implementation.