[
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.1)
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