[ https://issues.jboss.org/browse/JBSEAM-4863?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vaclav Dedik updated JBSEAM-4863: --------------------------------- Attachment: JBSEAM-4863.zip I've attached simple project (slightly modified from the forum) that reproduce this issue. The problem seems to be with @AutoCreate, it will create new instance of such a bean even if Lifecycle.isDestroing() is true. With create=true instead of @AutoCreate, it works fine. > Memory Leak when calling @Destroy (with SFSBs) > ---------------------------------------------- > > Key: JBSEAM-4863 > URL: https://issues.jboss.org/browse/JBSEAM-4863 > Project: Seam 2 > Issue Type: Bug > Affects Versions: 2.2.2.Final > Environment: JBoss AS 5.1.0.GA > Reporter: Daniel Lechner > Assignee: Vaclav Dedik > Labels: conversation, destroy > Fix For: 2.3.0.Final > > Attachments: JBSEAM-4863.zip > > Original Estimate: 3 days > Remaining Estimate: 3 days > > In an example-project, we have 2 Seam components, one POJO and one SFSB. The > POJO-component uses the SFSB-component via Seam-DI (@In). The POJO-component > has a method annotated with @Destroy. > We are using the POJO-component in a (long-running-)conversation. So the > POJO-component as well as the SFSB-component will be created within the > conversation. > When the conversation ends and all components will be removed, the > @Destroy-methods of all seam-components are called one after each other. The > order, the @Destroy-methods are called, depend on the hashCode of the > seam-name of the components (the component-names are put into an > java.util.HashSet in the method > org.jboss.seam.contexts.ServerConversationContext.getNamesFromSession() - the > for-loop of the method org.jboss.seam.contexts.Contexts.destroy iterates > through this HashSet afterwards). > If the component-names are chosen this way, that the SFSB-component will be > removed before the POJO-component is removed, a memory leak occurs: > 1. the SFSB-component is destroyed by seam - the container removes the > SFSB (the @Remove-method of the SFSB is called) > 2. the @Destroy-method of the POJO-component is called. But before, > Seam-DI creates a new SFSB-component TestEJB because of the @In-annotation > 3. the POJO-component is removed from the conversation (and later by the > GC) > 4. the SFSB-component's @Remove-method is not called again - the container > keeps the SFSB-instance > An example-code can be found in the forum reference -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira _______________________________________________ seam-issues mailing list seam-issues@lists.jboss.org https://lists.jboss.org/mailman/listinfo/seam-issues