Bugs item #613214, was opened at 2002-09-23 17:11 Message generated for change (Comment added) made by loubyansky You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=376685&aid=613214&group_id=22866
Category: JBossServer Group: None >Status: Closed >Resolution: Fixed Priority: 9 Submitted By: Christian Riege (lqd) >Assigned to: Alexey Loubyansky (loubyansky) Summary: equals is wrong on Local Interfaces Initial Comment: hi, there's something really rotten in the JBoss world regarding local interfaces: when I do a check for equality between two local interfaces of Bean A and Bean B , this check returns TRUE when the beans have the same PK (although they have totally different classes and underlying DB tables). This only happens on local interfaces, remote interfaces work just fine. Testcase and sources is attached. Put testcase.jar in your deploy directory; then do 'java test.Test' to see output in server console. JDK 1.4.0_02 OS: Win2k & Linux Affected JBoss Versions: 3.0 CVS, 3.2 CVS and 4.0 CVS ---------------------------------------------------------------------- >Comment By: Alexey Loubyansky (loubyansky) Date: 2003-09-04 17:38 Message: Logged In: YES user_id=543482 fixed in 3.2 and HEAD. ---------------------------------------------------------------------- Comment By: Sven van t Veer (svenveer) Date: 2002-11-27 18:01 Message: Logged In: YES user_id=644391 The EJB spec is clear on this IMHO. From page 120 we learn: "If two entity objects have the same home and the same primary key, they are considered identical." and: "A client can test whether two entity object references refer to the same entity object by using the isIdentical method." and, more importantly: "Alternatively, if a client obtains two entity object references from the same home, it can determine if they refer to the same entity by comparing their primary keys using the equals method." conclusion: - equals on two local interfaces from different homes should always return false. - equals om two primary keys from the same type (even if obtained from two different remote (or local remote interfaces) using getPrimaryKey may return true - the result of equals on two local/remote interfaces is undefined. - when comparing interfaces (local or remote) the bean developer should use isIdentical instead of equals. ---------------------------------------------------------------------- Comment By: Christian Riege (lqd) Date: 2002-11-27 16:45 Message: Logged In: YES user_id=176671 well, i would expect that when I obtain two Entity Beans from the same home with different PK's that the equals() operation returns true only if their PK is the same. but that is not the problem. Beans obtained from different homes should _never ever_ return true on an equals operation IMHO: after all a java.lang.String will never return 'true' on an equals operation with e.g. a java.util.Collection. but this is the current behaviour in case their PK's match. ---------------------------------------------------------------------- Comment By: Seth Sites (thesitesman) Date: 2002-10-18 00:24 Message: Logged In: YES user_id=579275 >From EJB 2.0 Spec Section 9.8.5 Page 120: if a client obtains two entity object references from the same home, it can determine if they refer to the same entity by comparing their primary keys using the equals method. I think the important part here is "from the same home". Your testcase involves comparing object references obtained from different homes. This behavior is not addressed in the spec, and therefore is undefined. Maybe we should check, but if you obtained it from the same home, like the spec clearly addresses, then the behavior will be correct. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=376685&aid=613214&group_id=22866 ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf _______________________________________________ JBoss-Development mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-development
