You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openwebbeans.apache.org by "Mark Struberg (JIRA)" <ji...@apache.org> on 2013/01/25 11:29:12 UTC

[jira] [Resolved] (OWB-769) Serialisation support for our new InterceptorDecoratorProxies

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

Mark Struberg resolved OWB-769.
-------------------------------

    Resolution: Fixed
    
> Serialisation support for our new InterceptorDecoratorProxies
> -------------------------------------------------------------
>
>                 Key: OWB-769
>                 URL: https://issues.apache.org/jira/browse/OWB-769
>             Project: OpenWebBeans
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.2.0
>            Reporter: Mark Struberg
>            Assignee: Mark Struberg
>             Fix For: 1.2.0
>
>
> Our InterceptorDecorator Proxies are dynamically created subclasses with class collision prevention. This means that a new class will get generated if the given class is already defined in the given ClassLoader. This happens by dynamically adding a number to the proxy class name.
> This mechanism means that it is not guaranteed that a proxy-class already exists on the target system and also that the effective name of the proxy-class could change depending on the node. 
> To work around this limitation we need to generate a writeReplace method into the generated interceptor proxy which solely serialises the InterceptorHandler as replacement object. The de-serialisation on the InterceptorHandler surrogate will result in a readResolve() which restores the proxy class by asking the InterceptorDecoratorProxyFactory for a new proxy instance. 
> Since the InterceptorHandler contains all needed information like the intercepted instance, all the Interceptor and Decorator instances, etc, we should need no further information from the proxy instance itself.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira