Completness tests fail with generated implementation classes for interfaces
---------------------------------------------------------------------------

         Key: JDO-364
         URL: http://issues.apache.org/jira/browse/JDO-364
     Project: JDO
        Type: Bug

  Components: tck20  
    Versions: JDO 2 rc1    
    Reporter: Craig Russell
 Assigned to: Michael Bouschen 
     Fix For: JDO 2 final


Completeness tests fail while comparing collections of persistent interfaces. 
This is because EqualityHelper invokes Collections.sort(Collection), which 
requires that the instances in the parameter Collection implement compareTo. 
The instances are not required by the specification to implement compareTo; 
therefore a Comparator must be provided to the sort method.

Further, classes Department and FullTimeEmployee incorrectly cast to the class 
instead of the interface in the deepCompareFields method.

Finally, the root classes Address, Company, Department, Insurance, Person, and 
Project need to implement the compare(Object, Object) methods directly, as 
there are three instances involved: the Comparator instance, which is an 
instance of the class, and the two instances to be compared. Both of the 
instances to be compared might be of the JDO-generated classes, which don't 
implement any comparison methods. The compare(Object, Object), 
compareTo(Object), and compareTo(SpecificInterface) should be refactored to use 
a common implementation using only the interface for comparison.

As a specification activity beyond JDO 2.0, we might consider adding metadata 
to require the JDO implementation to generate comparison methods from the 
Comparable or Comparator interfaces based on field values. For datastore 
identity, simply tagging the interfaces, e.g. "interface IDepartment extends 
Comparable", doesn't give the implementation enough information as to which 
fields to compare.

-- 
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

Reply via email to