db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Craig Russell <Craig.Russ...@Sun.COM>
Subject Re: JDO-109
Date Sat, 13 Aug 2005 19:26:18 GMT
Hi,

So here's the deepEquals method for Address, updated from:

     public boolean deepCompareFields(DeepEquality other,
                                      EqualityHelper helper) {
         Address otherAddress = (Address)other;
         return (addrid == otherAddress.addrid) &&
             helper.equals(street, otherAddress.street) &&
             helper.equals(city, otherAddress.city) &&
             helper.equals(state, otherAddress.state) &&
             helper.equals(zipcode, otherAddress.zipcode) &&
             helper.equals(country, otherAddress.country);
     }

to:

     public boolean deepCompareFields(DeepEquality other,
                                      EqualityHelper helper) {
         Address otherAddress = (Address)other;
String instanceId = "Address." + addrid + " "; // instance identifier
         return helper.equals(addrid, otherAddress.addrid, instanceId  
+ "addrid") &
             helper.equals(street, otherAddress.street, instanceid +  
"street") &
             helper.equals(city, otherAddress.city, instanceid +  
"city:) &
             helper.equals(state, otherAddress.state, instanceid +  
"state") &
             helper.equals(zipcode, otherAddress.zipcode, instanceid  
+ "zipcode") &
             helper.equals(country, otherAddress.country, instanceid  
+ "country");
     }

A few notes. The && is replaced with & to guarantee that all of the  
equals methods are executed and there is not an early return from the  
method because of an inequality. This way, all inequalities can be  
reported, not just the first one.

The helper.equals method needs another parameter that tell what  
instance and field are being compared.

Craig

On Aug 13, 2005, at 12:05 PM, Craig Russell wrote:

> Hi Karan,
>
> The tck20 doesn't yet pass all tests with JPOX. It's definitely a  
> work-in-progress.
>
> The number that was reported on Friday is in the minutes of the TCK  
> meeting.
>
>> Application identity 18 failures, 24 errors Datastore identity 17  
>> failures 25 errors.
>>
>
> There is a summary of the failures and errors at the end of the  
> run. All of them should be represented by JIRA issues. And we're  
> not finished writing TCK tests yet either.
>
> On Aug 13, 2005, at 11:32 AM, Karan Malhi wrote:
>
>
>> Hi Craig,
>>
>> I looked into the maven goals and realized that i did not setup the
>> database. So i ran installSchema goal and setup the database .
>>
>> However, now when i run the tests i get errors for a few of them and
>> Exceptions, some of the exceptions are JDOExceptions which state  
>> that two
>> objects were not equal. I guess this is what you were talking  
>> about with the
>> 109 issues as to how we could know which fields of which objects  
>> were not
>> equal.
>>
>
> Exactly. It's a little tough to track down whether it's a field  
> mismatch, or the contents of a collection or map that's the  
> problem. That's why 109 is going to be important to fix to help the  
> JPOX team figure out what's wrong. With the detail information, we  
> might look at the mapping and see a mapping error. Or it might be a  
> JPOX bug. Knowing exactly which field is causing the problem will  
> be a big help in debugging the TCK.
>
> Thanks,
>
> Craig
>
>>
>> On 8/13/05, Craig Russell <Craig.Russell@sun.com> wrote:
>>
>>
>>>
>>> Hi Karan,
>>>
>>> Before you run the tck, you need to set up the database. This is  
>>> done
>>> by the maven build goal but not done by the runtck.jdori goal.
>>>
>>> The reason is that setting up the database takes some number of
>>> minutes, and when running, you don't want to spend the time running
>>> this goal. And there's no easy way to tell if you need to run the  
>>> goal.
>>>
>>> If running maven installSchema doesn't do the trick for you, please
>>> run maven build and see if that fixes it.
>>>
>>> Craig
>>>
>>> On Aug 13, 2005, at 6:56 AM, Karan Malhi wrote:
>>>
>>>
>>>
>>>> Thanks Michael,
>>>>
>>>> This definitely helped. I ran maven runtck.jdori and it gave me
>>>> errors. It
>>>> could not establish a connection to the database. Below is the  
>>>> partial
>>>> output:
>>>> [java] java.sql.SQLException: Connections could not be acquired
>>>> from the
>>>> underlying database!
>>>> [java] at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:
>>>> 104)
>>>> [java] at
>>>> com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledCon 
>>>> nec
>>>> tion(
>>>> C3P0PooledConnectionPool.java:236)
>>>> [java] at com.mchange.v2.c3p0.PoolBackedDataSource.getConnection(
>>>> PoolBackedDataSource.java:94)
>>>> [java] at com.mchange.v2.c3p0.ComboPooledDataSource.getConnection(
>>>> ComboPooledDataSource.java:521)
>>>> [java] at org.jpox.store.rdbms.RDBMSManager.<init>
>>>> (RDBMSManager.java:215)
>>>> [java] at org.jpox.store.rdbms.RDBMSManagerFactory.getStoreManager(
>>>> RDBMSManagerFactory.java:59)
>>>> [java] at org.jpox.AbstractPersistenceManager.<init>(
>>>> AbstractPersistenceManager.java:194)
>>>> [java] at org.jpox.PersistenceManagerImpl.<init>
>>>> (PersistenceManagerImpl.java
>>>> :34)
>>>> [java] at
>>>> org.jpox.PersistenceManagerFactoryImpl.getPersistenceManager(
>>>> PersistenceManagerFactoryImpl.java:811)
>>>> [java] at
>>>> org.jpox.PersistenceManagerFactoryImpl.getPersistenceManager(
>>>> PersistenceManagerFactoryImpl.java:786)
>>>> [java] at org.apache.jdo.tck.JDO_Test.getPM(JDO_Test.java:421)
>>>> [java] at org.apache.jdo.tck.JDO_Test.deleteTearDownClasses
>>>> (JDO_Test.java:367)
>>>> [java] at org.apache.jdo.tck.JDO_Test.localTearDown 
>>>> (JDO_Test.java:293)
>>>> [java] at org.apache.jdo.tck.JDO_Test.tearDown(JDO_Test.java:263)
>>>> [java] at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:211)
>>>> [java] at junit.framework.TestResult$1.protect(TestResult.java:106)
>>>> [java] at junit.framework.TestResult.runProtected 
>>>> (TestResult.java:124)
>>>> [java] at junit.framework.TestResult.run(TestResult.java:109)
>>>> [java] at junit.framework.TestCase.run(TestCase.java:118)
>>>> [java] at junit.framework.TestSuite.runTest(TestSuite.java:208)
>>>> [java] at junit.framework.TestSuite.run(TestSuite.java:203)
>>>> [java] at junit.framework.TestSuite.runTest(TestSuite.java:208)
>>>> [java] at junit.framework.TestSuite.run(TestSuite.java:203)
>>>> [java] at junit.textui.TestRunner.doRun(TestRunner.java:116)
>>>> [java] at junit.textui.TestRunner.doRun(TestRunner.java:109)
>>>> [java] at org.apache.jdo.tck.util.BatchTestRunner.start
>>>> (BatchTestRunner.java
>>>> :128)
>>>> [java] at org.apache.jdo.tck.util.BatchTestRunner.main
>>>> (BatchTestRunner.java
>>>> :106)
>>>> [java] Caused by:
>>>> com.mchange.v2.resourcepool.CannotAcquireResourceException:
>>>> A ResourcePool could not acquire a resource from its primary
>>>> factory or
>>>> source.
>>>> [java] at  
>>>> com.mchange.v2.resourcepool.BasicResourcePool.awaitAcquire(
>>>> BasicResourcePool.java:970)
>>>> [java] at
>>>> com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(
>>>> BasicResourcePool.java:208)
>>>> [java] at
>>>> com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledCon 
>>>> nec
>>>> tion(
>>>> C3P0PooledConnectionPool.java:232)
>>>> [java] ... 25 more
>>>>
>>>>
>>>> On 8/13/05, Michael Bouschen <mbo.tech@spree.de> wrote:
>>>>
>>>>
>>>>
>>>>>
>>>>> Hi Karan,
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I guess this is a maven issue. I am getting a lot of errors when
>>>>>> i run
>>>>>>
>>>>>>
>>>>>>
>>>>> maven
>>>>>
>>>>>
>>>>>
>>>>>> -o runtck.iut. The errors say that it couldnt find plugin for
>>>>>> c3p0 in
>>>>>> classpath. Where do i set that? Below is the partial output:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> please run maven without the -o option. Maven runs in offline  
>>>>> mode in
>>>>> case option -o is specified. This means maven does not check the
>>>>> remote
>>>>> repository for any dependencies to be downloaded. It sounds like
>>>>> you do
>>>>> not have the c3p0 jar in you local repository under
>>>>> ~/.maven/repository/c3p0/libs/c2p0-0.9.0.jar. Maven automatically
>>>>> adds
>>>>> this to the classpath, so there is no need to do this manually.
>>>>>
>>>>> BTW, did you intend to run tck20 with the reference  
>>>>> implementation,
>>>>> meaning with JPOX? If yes, please use the goal runtck.jdori: maven
>>>>> runtck.jdori. The goal runtck.iut is used if you want to run  
>>>>> the tck
>>>>> against an JDO implementation (called iut: implementation under  
>>>>> test)
>>>>> to check whether it is JDO compliant.
>>>>>
>>>>> I hope this helps.
>>>>>
>>>>> Regards Michael
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>> doRuntck.iut:
>>>>>> [echo] Run JDO TCK on the IUT with configuration
>>>>>> Overriding previous definition of reference to
>>>>>> this.project.class.path
>>>>>> [java] RUN CompletenessTest.test ERROR
>>>>>> [java] Description: Completeness test with standard mapping,  
>>>>>> basic
>>>>>>
>>>>>>
>>>>>>
>>>>> testdata
>>>>>
>>>>>
>>>>>
>>>>>> with all relationships and embedded objects.
>>>>>> [java] Time: 0.552
>>>>>> [java] There was 1 error:
>>>>>> [java] 1) test(org.apache.jdo.tck.mapping
>>>>>> .CompletenessTest)javax.jdo.JDOFatalUserException:
>>>>>> The connection pool plugin of type "C3P0" was not found in the
>>>>>> CLASSPATH!
>>>>>> [java] at
>>>>>> org.jpox.AbstractPersistenceManagerFactory.freezeConfiguration(
>>>>>> AbstractPersistenceManagerFactory.java:232)
>>>>>> [java] at
>>>>>> org.jpox.PersistenceManagerFactoryImpl.getPersistenceManagerFacto

>>>>>> ry(
>>>>>> PersistenceManagerFactoryImpl.java:119)
>>>>>> [java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>>>>>> Method)
>>>>>> [java] at sun.reflect.NativeMethodAccessorImpl.invoke(
>>>>>> NativeMethodAccessorImpl.java:39)
>>>>>> [java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(
>>>>>> DelegatingMethodAccessorImpl.java:25)
>>>>>> [java] at javax.jdo.JDOHelper.getPersistenceManagerFactory
>>>>>> (JDOHelper.java
>>>>>> :472)
>>>>>> [java] at javax.jdo.JDOHelper.getPersistenceManagerFactory
>>>>>> (JDOHelper.java
>>>>>> :423)
>>>>>> [java] at org.apache.jdo.tck.JDO_Test.getPMF(JDO_Test.java:410)
>>>>>> [java] at org.apache.jdo.tck.JDO_Test.setUp(JDO_Test.java:179)
>>>>>> [java] at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:196)
>>>>>> [java] at org.apache.jdo.tck.util.BatchTestRunner.start(
>>>>>>
>>>>>>
>>>>>>
>>>>> BatchTestRunner.java
>>>>>
>>>>>
>>>>>
>>>>>> :128)
>>>>>> [java] at org.apache.jdo.tck.util.BatchTestRunner.main(
>>>>>>
>>>>>>
>>>>>>
>>>>> BatchTestRunner.java
>>>>>
>>>>>
>>>>>
>>>>>> :106)
>>>>>> [java] FAILURES!!!
>>>>>> [java] Error summary:
>>>>>> [java] 001 error: javax.jdo.JDOFatalUserException: The connection
>>>>>> pool
>>>>>> plugin of type "C3P0" was not found in the CLASSPATH!
>>>>>> [java] Tests run: 1, Failures: 0, Errors: 1, Time: 0.552 seconds.
>>>>>> [java] Excluded tests: [
>>>>>>
>>>>>>
>>>>>>
>>>>> org.apache.jdo.tck.enhancement.FieldAccessModified,
>>>>>
>>>>>
>>>>>
>>>>>> org.apache.jdo.tck.enhancement.ImplementsPersistenceCapable]
>>>>>> [java] [ERROR] Java Result: 1
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> 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
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Karan Malhi
>>>>
>>>>
>>>>
>>>
>>> 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!
>>>
>>>
>>>
>>>
>>>
>>
>>
>> -- 
>> Karan Malhi
>>
>>
>
> 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!


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message