[ 
https://issues.apache.org/jira/browse/OWB-329?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12846796#action_12846796
 ] 

Mark Struberg commented on OWB-329:
-----------------------------------

apparently this patch currently doesn't use the split proxies but instead tries 
to save the original CreationalContext in a ContextWrapper.

This solution is a huge performance boost, but suffers from mem leaks because 
Contextual#destroy() cannot release AbstractContext#creationalContextMap.

This is not such a huge problems for our internal contexts (where we internally 
keep n contexts instances behind our facade, thus the whole context get's 
cleaned much more often), but really problematic with all 3rd party.

This is exactly the reason why the spec explicitly defines that Interceptors 
and Decorators must be implemented by subclassing and not via proxying.

> Interceptor instances get created each time the interceptor gets called
> -----------------------------------------------------------------------
>
>                 Key: OWB-329
>                 URL: https://issues.apache.org/jira/browse/OWB-329
>             Project: OpenWebBeans
>          Issue Type: Bug
>          Components: Interceptor and Decorators
>    Affects Versions: M4
>            Reporter: Mark Struberg
>            Assignee: Mark Struberg
>            Priority: Critical
>             Fix For: 1.0.0
>
>
> Interceptors are defined as being @Dependent scoped. Thus, for one 
> @ApplicationScoped contextual instance, only one interceptor instance of a 
> certain type must exist. But we currently create a new instance for each and 
> every method invocation which is intercepted. 
> This is not only terribly slow, but also doesn't work as expected from a 
> portable perspective.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to