From jdo-dev-return-4079-apmail-db-jdo-dev-archive=www.apache.org@db.apache.org Thu Apr 06 22:13:40 2006 Return-Path: Delivered-To: apmail-db-jdo-dev-archive@www.apache.org Received: (qmail 29774 invoked from network); 6 Apr 2006 22:13:38 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 6 Apr 2006 22:13:38 -0000 Received: (qmail 70753 invoked by uid 500); 6 Apr 2006 22:13:37 -0000 Mailing-List: contact jdo-dev-help@db.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: jdo-dev@db.apache.org Delivered-To: mailing list jdo-dev@db.apache.org Received: (qmail 70432 invoked by uid 99); 6 Apr 2006 22:13:36 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Apr 2006 15:13:36 -0700 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [212.224.30.66] (HELO service-01.spree.de) (212.224.30.66) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Apr 2006 15:13:35 -0700 Received: from [172.16.2.80] (vpn-server [192.168.16.104]) (authenticated bits=0) by service-01.spree.de (8.13.4/8.13.4/Debian-3) with ESMTP id k36MDADo027793 for ; Fri, 7 Apr 2006 00:13:11 +0200 Message-ID: <44359275.1000705@spree.de> Date: Fri, 07 Apr 2006 00:13:09 +0200 From: Michael Bouschen Organization: Tech@Spree Engineering User-Agent: Thunderbird 1.5 (Windows/20051201) MIME-Version: 1.0 To: jdo-dev@db.apache.org Subject: Re: TCK completeness interface References: <1144282918.44345f26eff86@webmail.jpox.org> <1144284259.443464636665e@webmail.jpox.org> <8A1283CC-B48B-4DA6-8690-32A7783A0077@Sun.COM> <1144321605.4434f64551063@webmail.jpox.org> <01044024-40A7-44EA-9211-FF7E0A9F82B7@Sun.COM> <443526F4.4080105@spree.de> <1144334892.44352a2cb42fb@webmail.jpox.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Hi Craig, > Hi Erik, > > Thanks for your efforts here in debugging the TCK. We had anticipated > the issues you found, but were unable to test our implementation of > the comparison methods without an implementation of the interfaces > that weren't also implementations of the classes. > > Michael and I are working on a patch and a JIRA issue. The patch will > modify the compare(Object, Object) methods of the top level classes > and fix the deepCompareFields for Department and FullTimeEmployee. In > addition, some of the methods in EqualityHelper need to be changed as > well. > > The objective is to avoid adding Comparable or Comparator methods to > the interfaces, as there is no JDO-specified requirement to implement > these for persistent interfaces. I attached a patch to JDO-364. I developed and tested it on the trunk, but the patch should also work on the 2.0 branch. > > Michael, > > Erik also found this in EqualityHelper at line 378. This incorrect > code should be removed, as Department.class is not assignable from > IDepartmentImpl.class. I removed the isAssignableFrom check from EqualityHelper, there were actually two places having such a check. Regards Michael > > if (!me.getClass().isAssignableFrom(other.getClass())) { > logUnequal(me, other, where + msgIncompatibleTypes); > return false; > } > > Craig > > On Apr 6, 2006, at 7:48 AM, Erik Bengtson wrote: > >> Hi I have a patch here for some issues. It may be useful or not for you. >> >> There are other issues that I'm working on. >> >> Index: >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/Department.java >> >> =================================================================== >> --- >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/Department.java >> (revision >> 391636) >> +++ >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/Department.java >> (working >> copy) >> @@ -246,7 +246,7 @@ >> */ >> public boolean deepCompareFields(Object other, >> EqualityHelper helper) { >> - Department otherDept = (Department)other; >> + IDepartment otherDept = (IDepartment)other; >> String where = "Department<" + deptid + ">"; >> return >> helper.equals(deptid, otherDept.getDeptid(), where + >> ".deptid") & >> @@ -294,7 +294,9 @@ >> * Compare two instances. This is a method in Comparator. >> */ >> public int compare(Object o1, Object o2) { >> - return ((Department)o1).compareTo(o2); >> + IDepartment other = (IDepartment)o2; >> + long otherId = other.getDeptid(); >> + return (((IDepartment)o1).getDeptid() < otherId ? -1 : >> (((IDepartment)o1).getDeptid() == otherId ? 0 : 1)); >> } >> >> /** >> Index: >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/CompanyFactoryAbstractImpl.java >> >> =================================================================== >> --- >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/CompanyFactoryAbstractImpl.java >> (revision >> 391636) >> +++ >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/CompanyFactoryAbstractImpl.java >> (working >> copy) >> @@ -132,6 +132,7 @@ >> public IFullTimeEmployee newFullTimeEmployee(long personid, >> String first, >> String last, String middle, java.util.Date born, java.util.Date >> hired, double >> sal) { >> IFullTimeEmployee result = newFullTimeEmployee(); >> if (debug) logger.debug("newFullTimeEmployee returned" + >> result); >> + logger.warn("newFullTimeEmployee returned. born" + born); >> result.setPersonid(personid); >> result.setFirstname(first); >> result.setLastname(last); >> @@ -145,6 +146,7 @@ >> public IFullTimeEmployee newFullTimeEmployee(long personid, >> String first, >> String last, String middle, java.util.Date born, IAddress addr, >> java.util.Date >> hired, double sal) { >> IFullTimeEmployee result = newFullTimeEmployee(); >> if (debug) logger.debug("newFullTimeEmployee returned" + >> result); >> + logger.warn("newFullTimeEmployee returned. born" + born); >> result.setPersonid(personid); >> result.setFirstname(first); >> result.setLastname(last); >> @@ -178,6 +180,7 @@ >> public IPartTimeEmployee newPartTimeEmployee(long personid, >> String first, >> String last, String middle, java.util.Date born, java.util.Date >> hired, double >> wage) { >> IPartTimeEmployee result = newPartTimeEmployee(); >> if (debug) logger.debug("newPartTimeEmployee returned" + >> result); >> + logger.warn("newPartTimeEmployee returned. born" + born); >> result.setPersonid(personid); >> result.setFirstname(first); >> result.setLastname(last); >> @@ -191,6 +194,7 @@ >> public IPartTimeEmployee newPartTimeEmployee(long personid, >> String first, >> String last, String middle, java.util.Date born, IAddress addr, >> java.util.Date >> hired, double wage) { >> IPartTimeEmployee result = newPartTimeEmployee(); >> if (debug) logger.debug("newPartTimeEmployee returned" + >> result); >> + logger.warn("newPartTimeEmployee returned. born" + born); >> result.setPersonid(personid); >> result.setFirstname(first); >> result.setLastname(last); >> Index: >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/Project.java >> =================================================================== >> --- >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/Project.java >> (revision >> 391636) >> +++ >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/Project.java >> (working >> copy) >> @@ -233,7 +233,9 @@ >> * Compare two instances. This is a method in Comparator. >> */ >> public int compare(Object o1, Object o2) { >> - return ((Project)o1).compareTo(o2); >> + IProject other = (IProject)o2; >> + long otherId = other.getProjid(); >> + return (((IProject)o1).getProjid() < otherId ? -1 : >> (((IProject)o1).getProjid() == otherId ? 0 : 1)); >> } >> >> /** >> Index: >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/Person.java >> =================================================================== >> --- >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/Person.java >> (revision >> 391636) >> +++ >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/Person.java >> (working >> copy) >> @@ -293,7 +293,9 @@ >> * Compare two instances. This is a method in Comparator. >> */ >> public int compare(Object o1, Object o2) { >> - return ((Person)o1).compareTo(o2); >> + IPerson other = (IPerson)o2; >> + long otherId = other.getPersonid(); >> + return (((IPerson)o1).getPersonid() < otherId ? -1 : >> (((IPerson)o1).getPersonid() == otherId ? 0 : 1)); >> } >> >> /** >> Index: >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/Company.java >> =================================================================== >> --- >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/Company.java >> (revision >> 391636) >> +++ >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/Company.java >> (working >> copy) >> @@ -233,7 +233,9 @@ >> * Compare two instances. This is a method in Comparator. >> */ >> public int compare(Object o1, Object o2) { >> - return ((Company)o1).compareTo(o2); >> + ICompany other = (ICompany)o2; >> + long otherId = other.getCompanyid(); >> + return (((ICompany)o1).getCompanyid() < otherId ? -1 : >> (((ICompany)o1).getCompanyid() == otherId ? 0 : 1)); >> } >> >> /** >> Index: >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/FullTimeEmployee.java >> >> =================================================================== >> --- >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/FullTimeEmployee.java >> (revision >> 391636) >> +++ >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/FullTimeEmployee.java >> (working >> copy) >> @@ -117,7 +117,7 @@ >> */ >> public boolean deepCompareFields(Object other, >> EqualityHelper helper) { >> - FullTimeEmployee otherEmp = (FullTimeEmployee)other; >> + IFullTimeEmployee otherEmp = (IFullTimeEmployee)other; >> String where = "FullTimeEmployee<" + getPersonid() + ">"; >> return super.deepCompareFields(otherEmp, helper) & >> helper.closeEnough(salary, otherEmp.getSalary(), where + >> ".salary"); >> Index: >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/Address.java >> =================================================================== >> --- >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/Address.java >> (revision >> 391636) >> +++ >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/Address.java >> (working >> copy) >> @@ -209,7 +209,9 @@ >> * Compare two instances. This is a method in Comparator. >> */ >> public int compare(Object o1, Object o2) { >> - return ((Address)o1).compareTo(o2); >> + IAddress other = (IAddress)o2; >> + long otherId = other.getAddrid(); >> + return (((IAddress)o1).getAddrid() < otherId ? -1 : >> (((IAddress)o1).getAddrid() == otherId ? 0 : 1)); >> } >> >> /** >> Index: >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/Insurance.java >> =================================================================== >> --- >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/Insurance.java >> (revision >> 391636) >> +++ >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/pc/company/Insurance.java >> (working >> copy) >> @@ -153,7 +153,9 @@ >> * Compare two instances. This is a method in Comparator. >> */ >> public int compare(Object o1, Object o2) { >> - return ((Insurance)o1).compareTo(o2); >> + IInsurance other = (IInsurance)o2; >> + long otherId = other.getInsid(); >> + return (((IInsurance)o1).getInsid() < otherId ? -1 : >> (((IInsurance)o1).getInsid() == otherId ? 0 : 1)); >> } >> >> /** >> >> >> Index: >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/util/EqualityHelper.java >> =================================================================== >> --- >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/util/EqualityHelper.java >> (revision >> 391636) >> +++ >> D:/jdo/trunk/tck20/src/java/org/apache/jdo/tck/util/EqualityHelper.java >> (working >> copy) >> @@ -375,10 +375,12 @@ >> logUnequal(me, other, where + msgOtherNull); >> return false; >> } >> + /* no need to check since the deepCompareFields with cast to >> the >> expected type >> if (!me.getClass().isAssignableFrom(other.getClass())) { >> logUnequal(me, other, where + msgIncompatibleTypes); >> return false; >> } >> + */ >> if (isProcessed(me)) >> return true; >> markProcessed(me); >> >> >> Quoting Craig L Russell : >> >>> Hi Michael, >>> >>> I haven't started on this. If possible, could you file a JIRA and >>> attach your patch to it. >>> >>> Without Erik's changes, I can't test it either. >>> >>> Erik, >>> >>> Is there a way you can make the JPOX jar file available? >>> >>> Thanks, >>> >>> Craig >>> >>> On Apr 6, 2006, at 7:34 AM, Michael Bouschen wrote: >>> >>>> Hi Craig, >>>> >>>> I think this issue appears at two different places: >>>> >>>> (1) Method compare(Object o1, Object o2) in all company classes >>>> delegates to the compareTo method and casts the first argument to >>>> the class instead of the interface: >>>> public int compare(Object o1, Object o2) { >>>> return ((Insurance)o1).compareTo(o2); >>>> } >>>> This requires adding the compareTo methods to the interfaces. >>>> >>>> (2) Method deepCompareFields in Department and FullTimeEmployee >>>> cast the argument to the class instead of the interface: >>>> public boolean deepCompareFields(Object other, >>>> EqualityHelper helper) { >>>> Department otherDept = (Department)other; >>>> >>>> I understood you already started to fix this, correct? Anyway, you >>>> find my changed attached. They compile, but I could not test it. >>>> >>>> Regards Michael >>>> >>>>> Hi Erik, >>>>> Great news. If you are this far, then you have succeeded in >>>>> storing and retrieving instances to the database. I'll have a fix >>>>> for you shortly. >>>>> Craig >>>>> On Apr 6, 2006, at 4:06 AM, Erik Bengtson wrote: >>>>>> Craig, >>>>>> >>>>>> The "null" issue is over. It was a reachability issue where JPOX >>>>>> nullify all >>>>>> fields before deleting from the database. >>>>>> >>>>>> Now there is another issue in the CompletenessTest.test method >>>>>> where it falls >>>>>> the expected object tree back to the concrete classes. It >>>>>> compares a concrete >>>>>> object tree to the tree of objects generated by JPOX. >>>>>> >>>>>> The code has a cast to Department and invoke to compareTo, and >>>>>> this code will >>>>>> not work for interfaces. >>>>>> >>>>>> [java] 1) test(org.apache.jdo.tck.mapping.CompletenessTest) >>>>>> java.lang.ClassCa >>>>>> stException: org.apache.jdo.tck.pc.company.IDepartmentImpl >>>>>> [java] at >>>>>> org.apache.jdo.tck.pc.company.Department.compare (Department.j >>>>>> ava:297) >>>>>> [java] at java.util.Arrays.mergeSort(Arrays.java:1284) >>>>>> [java] at java.util.Arrays.sort(Arrays.java:1223) >>>>>> [java] at java.util.Collections.sort(Collections.java:159) >>>>>> [java] at >>>>>> org.apache.jdo.tck.util.EqualityHelper.deepEquals (EqualityHel >>>>>> per.java:477) >>>>>> [java] at >>>>>> org.apache.jdo.tck.pc.company.Company.deepCompareFields(Compa >>>>>> ny.java:224) >>>>>> [java] at >>>>>> org.apache.jdo.tck.mapping.CompletenessTest.test (Completeness >>>>>> Test.java:108) >>>>>> >>>>>> >>>>> Craig Russell >>>>> Architect, Sun Java Enterprise System http://java.sun.com/products/ >>>>> jdo >>>>> 408 276-5638 mailto:Craig.Russell@sun.com >>>>> P.S. A good JDO? O, Gasp! >>>> >>>> >>>> -- >>>> Michael Bouschen Tech@Spree Engineering GmbH >>>> mailto:mbo.tech@spree.de http://www.tech.spree.de/ >>>> Tel.:++49/30/235 520-33 Buelowstr. 66 >>>> Fax.:++49/30/2175 2012 D-10783 Berlin >>>> Index: src/java/org/apache/jdo/tck/pc/company/IInsurance.java >>>> =================================================================== >>>> --- src/java/org/apache/jdo/tck/pc/company/IInsurance.java >>>> (revision 391925) >>>> +++ src/java/org/apache/jdo/tck/pc/company/IInsurance.java (working >>>> copy) >>>> @@ -30,4 +30,6 @@ >>>> void setInsid(long insid); >>>> void setCarrier(String carrier); >>>> void setEmployee(IEmployee employee); >>>> + >>>> + public int compareTo(Object o); >>>> } >>>> Index: src/java/org/apache/jdo/tck/pc/company/Department.java >>>> =================================================================== >>>> --- src/java/org/apache/jdo/tck/pc/company/Department.java >>>> (revision 391925) >>>> +++ src/java/org/apache/jdo/tck/pc/company/Department.java (working >>>> copy) >>>> @@ -246,7 +246,7 @@ >>>> */ >>>> public boolean deepCompareFields(Object other, >>>> EqualityHelper helper) { >>>> - Department otherDept = (Department)other; >>>> + IDepartment otherDept = (IDepartment)other; >>>> String where = "Department<" + deptid + ">"; >>>> return >>>> helper.equals(deptid, otherDept.getDeptid(), where + >>>> ".deptid") & >>>> @@ -294,7 +294,7 @@ >>>> * Compare two instances. This is a method in Comparator. >>>> */ >>>> public int compare(Object o1, Object o2) { >>>> - return ((Department)o1).compareTo(o2); >>>> + return ((IDepartment)o1).compareTo(o2); >>>> } >>>> >>>> /** >>>> Index: src/java/org/apache/jdo/tck/pc/company/Company.java >>>> =================================================================== >>>> --- src/java/org/apache/jdo/tck/pc/company/Company.java (revision >>>> 391925) >>>> +++ src/java/org/apache/jdo/tck/pc/company/Company.java (working >>>> copy) >>>> @@ -233,7 +233,7 @@ >>>> * Compare two instances. This is a method in Comparator. >>>> */ >>>> public int compare(Object o1, Object o2) { >>>> - return ((Company)o1).compareTo(o2); >>>> + return ((ICompany)o1).compareTo(o2); >>>> } >>>> >>>> /** >>>> Index: src/java/org/apache/jdo/tck/pc/company/Person.java >>>> =================================================================== >>>> --- src/java/org/apache/jdo/tck/pc/company/Person.java (revision >>>> 391925) >>>> +++ src/java/org/apache/jdo/tck/pc/company/Person.java (working >>>> copy) >>>> @@ -293,7 +293,7 @@ >>>> * Compare two instances. This is a method in Comparator. >>>> */ >>>> public int compare(Object o1, Object o2) { >>>> - return ((Person)o1).compareTo(o2); >>>> + return ((IPerson)o1).compareTo(o2); >>>> } >>>> >>>> /** >>>> Index: src/java/org/apache/jdo/tck/pc/company/Project.java >>>> =================================================================== >>>> --- src/java/org/apache/jdo/tck/pc/company/Project.java (revision >>>> 391925) >>>> +++ src/java/org/apache/jdo/tck/pc/company/Project.java (working >>>> copy) >>>> @@ -233,7 +233,7 @@ >>>> * Compare two instances. This is a method in Comparator. >>>> */ >>>> public int compare(Object o1, Object o2) { >>>> - return ((Project)o1).compareTo(o2); >>>> + return ((IProject)o1).compareTo(o2); >>>> } >>>> >>>> /** >>>> Index: src/java/org/apache/jdo/tck/pc/company/IDepartment.java >>>> =================================================================== >>>> --- src/java/org/apache/jdo/tck/pc/company/IDepartment.java >>>> (revision 391925) >>>> +++ src/java/org/apache/jdo/tck/pc/company/IDepartment.java >>>> (working copy) >>>> @@ -39,4 +39,5 @@ >>>> void setEmployees(Set employees); >>>> void setFundedEmps(Set employees); >>>> >>>> + public int compareTo(Object o); >>>> } >>>> Index: src/java/org/apache/jdo/tck/pc/company/ICompany.java >>>> =================================================================== >>>> --- src/java/org/apache/jdo/tck/pc/company/ICompany.java (revision >>>> 391925) >>>> +++ src/java/org/apache/jdo/tck/pc/company/ICompany.java (working >>>> copy) >>>> @@ -37,4 +37,6 @@ >>>> void setDepartments(Set depts); >>>> void setFounded(Date date); >>>> void setName(String string); >>>> + >>>> + public int compareTo(Object o); >>>> } >>>> Index: src/java/org/apache/jdo/tck/pc/company/IPerson.java >>>> =================================================================== >>>> --- src/java/org/apache/jdo/tck/pc/company/IPerson.java (revision >>>> 391925) >>>> +++ src/java/org/apache/jdo/tck/pc/company/IPerson.java (working >>>> copy) >>>> @@ -42,4 +42,5 @@ >>>> void setBirthdate(Date birthdate); >>>> void setPhoneNumbers(Map phoneNumbers); >>>> >>>> + public int compareTo(Object o); >>>> } >>>> Index: src/java/org/apache/jdo/tck/pc/company/IProject.java >>>> =================================================================== >>>> --- src/java/org/apache/jdo/tck/pc/company/IProject.java (revision >>>> 391925) >>>> +++ src/java/org/apache/jdo/tck/pc/company/IProject.java (working >>>> copy) >>>> @@ -36,5 +36,6 @@ >>>> void setBudget(BigDecimal budget); >>>> void setReviewers(Set reviewers); >>>> void setMembers(Set employees); >>>> - >>>> + >>>> + public int compareTo(Object o); >>>> } >>>> Index: src/java/org/apache/jdo/tck/pc/company/FullTimeEmployee.java >>>> =================================================================== >>>> --- src/java/org/apache/jdo/tck/pc/company/FullTimeEmployee.java >>>> (revision 391925) >>>> +++ src/java/org/apache/jdo/tck/pc/company/FullTimeEmployee.java >>>> (working copy) >>>> @@ -117,7 +117,7 @@ >>>> */ >>>> public boolean deepCompareFields(Object other, >>>> EqualityHelper helper) { >>>> - FullTimeEmployee otherEmp = (FullTimeEmployee)other; >>>> + IFullTimeEmployee otherEmp = (IFullTimeEmployee)other; >>>> String where = "FullTimeEmployee<" + getPersonid() + ">"; >>>> return super.deepCompareFields(otherEmp, helper) & >>>> helper.closeEnough(salary, otherEmp.getSalary(), where >>>> + ".salary"); >>>> Index: src/java/org/apache/jdo/tck/pc/company/Address.java >>>> =================================================================== >>>> --- src/java/org/apache/jdo/tck/pc/company/Address.java (revision >>>> 391925) >>>> +++ src/java/org/apache/jdo/tck/pc/company/Address.java (working >>>> copy) >>>> @@ -209,7 +209,7 @@ >>>> * Compare two instances. This is a method in Comparator. >>>> */ >>>> public int compare(Object o1, Object o2) { >>>> - return ((Address)o1).compareTo(o2); >>>> + return ((IAddress)o1).compareTo(o2); >>>> } >>>> >>>> /** >>>> Index: src/java/org/apache/jdo/tck/pc/company/Insurance.java >>>> =================================================================== >>>> --- src/java/org/apache/jdo/tck/pc/company/Insurance.java (revision >>>> 391925) >>>> +++ src/java/org/apache/jdo/tck/pc/company/Insurance.java (working >>>> copy) >>>> @@ -153,7 +153,7 @@ >>>> * Compare two instances. This is a method in Comparator. >>>> */ >>>> public int compare(Object o1, Object o2) { >>>> - return ((Insurance)o1).compareTo(o2); >>>> + return ((IInsurance)o1).compareTo(o2); >>>> } >>>> >>>> /** >>>> Index: src/java/org/apache/jdo/tck/pc/company/IAddress.java >>>> =================================================================== >>>> --- src/java/org/apache/jdo/tck/pc/company/IAddress.java (revision >>>> 391925) >>>> +++ src/java/org/apache/jdo/tck/pc/company/IAddress.java (working >>>> copy) >>>> @@ -36,4 +36,6 @@ >>>> void setState(String state); >>>> void setZipcode(String zipcode); >>>> void setCountry(String country); >>>> + >>>> + public int compareTo(Object o); >>>> } >>> >>> Craig Russell >>> Architect, Sun Java Enterprise System http://java.sun.com/products/jdo >>> 408 276-5638 mailto:Craig.Russell@sun.com >>> P.S. A good JDO? O, Gasp! >>> >>> >> >> >> > > Craig Russell > Architect, Sun Java Enterprise System http://java.sun.com/products/jdo > 408 276-5638 mailto:Craig.Russell@sun.com > P.S. A good JDO? O, Gasp! > -- Michael Bouschen Tech@Spree Engineering GmbH mailto:mbo.tech@spree.de http://www.tech.spree.de/ Tel.:++49/30/235 520-33 Buelowstr. 66 Fax.:++49/30/2175 2012 D-10783 Berlin