Projects tigase _server server-core Issues #882
Possible memory leak in RosterElement (#882)
Closed
Andrzej Wójcik (Tigase) opened 7 years ago

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.

Andrzej Wójcik (Tigase) commented 7 years ago

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.

wojciech.kapcia@tigase.net commented 7 years ago

Good catch - makes sense.

issue 1 of 1
Type
Bug
Priority
Normal
Assignee
RedmineID
6103
Version
tigase-server-8.0.0
Spent time
3h 45m
Issue Votes (0)
Watchers (0)
Reference
tigase/_server/server-core#882
Please wait...
Page is in error, reload to recover