Code of the key objects in the package org.apache.torque.om needs review.
-------------------------------------------------------------------------

                 Key: TORQUE-67
                 URL: http://issues.apache.org/jira/browse/TORQUE-67
             Project: Torque
          Issue Type: Bug
    Affects Versions: 3.2, 3.3
            Reporter: Thomas Fischer
            Priority: Minor
             Fix For: 4.0


Some of the equals() method violate the contract of Object.equals(): According 
to the contract of equals()  in java.lang.object, equals() must be transitive, 
i.e. if objectA.equals(objectB) == objectB.equals(objectA) must be true in all 
circumstances (except one of them is null, of course), and the equals () method 
should not trow any exceptions. Both is not true e.g. if obkjectA is a 
NumberKey and objectB is a String key. NumberKey throws a 
IllegalArgumentException if compared to a StringKey, wheras if the comparison 
is turned round, false is returned.

Also, if equals() is implemented, one should also implement hashCode()  which 
is not done in stringKey.

The code in the keys classes seems not be very good in general. For example, in 
DateKey.equals(), it is checked whether key is a String , which cannot occur 
because every setter initializes key with a date object. Another example:  
SimpleKey (a key factory which has only static methods) is in the class 
hierarchy of the key objects, which is very strange at least.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to