[ 
https://issues.apache.org/jira/browse/TOMEE-4560?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kartik Sirigeri updated TOMEE-4560:
-----------------------------------
    Summary: Memory leak for EJB3 stateful bean  (was: Memory leak for EJB2 
stateful bean)

> Memory leak for EJB3 stateful bean
> ----------------------------------
>
>                 Key: TOMEE-4560
>                 URL: https://issues.apache.org/jira/browse/TOMEE-4560
>             Project: TomEE
>          Issue Type: Bug
>          Components: TomEE Core Server
>    Affects Versions: 8.0.16
>            Reporter: Kartik Sirigeri
>            Priority: Major
>         Attachments: EjbProxyHandler_EJB2.png, EjbProxyHandler_EJB3.png, 
> test_project.zip
>
>
> The bean references are not getting removed from 
> ProxyRegistry.liveHandleRegistry map when the the method annotated wtih 
> '@Remove' annotation for EJB3 stateful bean is invoked. While the call for 
> remove method on EJB2 stateful beans removes the entry from 
> ProxyRegistry.liveHandleRegistry map immmediately. It seems the 
> EjbObjectProxyHandler._invoke method checks  for EJB_OBJECT, EJB_LOCAL type 
> along with the operation type, this check fails for EJB3 beans and the beans 
> remove in the ProxyRegistry.liveHandleRegistry map unless any further 
> business methods are invoked which would invaldiate the map due to 
> InvalidateReferenceException. This causes a memory leak unless any business 
> method is not called after the invocation of @Remove method in EJB3.
>  
> Snapshot of the debug flow attached along with the test code



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to