in reply to Is this a Memory leak ?

Surely, each community has more than one session. If so, which session does the object hold? If the relation is really one to one, they should be the same object.

Is there any reason why you need the circular object reference chain? Presumably, the relation of sessions to communities is many to one. In that case, a session object hasa community

If you need to find which sessions belong to a community (presumably you are maintaining a list of active sessions), then scan this list for matching communities. This could be done as a method of the community class.

--rW