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 2011/03/24 22:32:05 UTC

[jira] [Updated] (OWB-458) we should unpack the parameter for proxied equals(Object) calls in certain cases

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

Mark Struberg updated OWB-458:
------------------------------

    Fix Version/s:     (was: 1.1.0)
                   1.2.0

currently discussing with the EG how this should be implemented from the spec pov -> moved to target 1.2.0

> we should unpack the parameter for proxied equals(Object) calls in certain cases
> --------------------------------------------------------------------------------
>
>                 Key: OWB-458
>                 URL: https://issues.apache.org/jira/browse/OWB-458
>             Project: OpenWebBeans
>          Issue Type: Bug
>          Components: Interceptor and Decorators
>    Affects Versions: 1.0.0-alpha-2
>            Reporter: Mark Struberg
>            Assignee: Mark Struberg
>             Fix For: 1.2.0
>
>
> The problem:
> If you invoke an equals(Object o) method on a proxy, then the proxy might directly access private fields if o is of the same type as the proxied object itself.
> But if the proxy directly accesses private fields, then no interception occurs and the equals method will effectively only get the empty values from proxy itself (which enhances o's class and thus has the exact same fields).
> The solution:
> We need to 'unpack' the proxy parameter and instead provide the underlying contextual instance
> if (inteceptedMethod.equals("equals") && param.intanceOf(bean.getType()) && isOurProxy(parram)
> {
>   unpackedParam = getUnderlyingContextualInstance((NormalScopedBeanInterceptor) param);
>   invoke("equals", unpackedParam);
> }
> ..

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira