You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Andrey Davydov (Jira)" <ji...@apache.org> on 2020/03/18 12:56:00 UTC

[jira] [Created] (FELIX-6243) Link to root Felix object leaks to GC root

Andrey Davydov created FELIX-6243:
-------------------------------------

             Summary: Link to root Felix object leaks to GC root
                 Key: FELIX-6243
                 URL: https://issues.apache.org/jira/browse/FELIX-6243
             Project: Felix
          Issue Type: Bug
    Affects Versions: framework-6.0.3
            Reporter: Andrey Davydov
         Attachments: felix.png

Tested on java8.

Felix object creates StatefulResolver and then  StatefulResolver  get link to Felix. 

StatefulResolver creates Executor in getExecutor() using nested class as ThreadFactory (when FelixConstants.RESOLVER_PARALLELISM greater then 1)

 

So every thread in Executor has link to Executor

Executor has link to ThreadFactory

ThreadFactory has link to StatefulResolver, because it is nested

StatefulResolver has link to Felix

 

And it is the way from GC root to Felix and GC can't collect Felix after Felix.stop() and all external refs to Felix cut.

 

 

 

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)