[ 
https://jira.jboss.org/browse/WELD-695?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12566720#comment-12566720
 ] 

Stuart Douglas commented on WELD-695:
-------------------------------------

Actually this does not make sense for client proxies. There are quite a few 
problems, but these are the main ones:

- hashCode will change when the underlying instance changes - Also different 
threads will have see different underlying bean instances, and will get 
different hashCodes as well. This will cause all kinds of weirdness

- equals cannot be made transitive
if we unwrap the proxy we end up with a situation were a.equals(proxy) != 
proxy.equals(a)

At the moment the behaviour of the client proxies in hash maps/sets is quite 
well defined, however if we change this behaviour then anything can happen, and 
the problems will likely be intermittent and almost impossible to debug.

I think for client proxies the strategy we should use is:

hashCode: getClass().hashCode() 

equals: this.getClass().equals(other.getClass())

So client proxies are only equal to other client proxies for the same bean.

> Client proxies should delegate equals and hashCode to the underlying instance
> -----------------------------------------------------------------------------
>
>                 Key: WELD-695
>                 URL: https://jira.jboss.org/browse/WELD-695
>             Project: Weld
>          Issue Type: Bug
>          Components: Proxies
>    Affects Versions: 1.1.0.Beta1
>            Reporter: Stuart Douglas
>            Assignee: Stuart Douglas
>             Fix For: 1.1.0.CR1
>
>


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

        
_______________________________________________
weld-issues mailing list
weld-issues@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/weld-issues

Reply via email to