Hi Andy,
I sent a patch (Assertion-A7-A8.patch) containg the test case
(NewObjectIdInstance.java) to jdo-dev today. I ran it with JPOX build
"20050628.022915". This seems to be the latest build available under
nightly builds. I still get the exception (see below).
Please have a look at the test case and the meta data, if there is
something wrong.
Regards,
Michael
testSingleFieldIdentityInitializedbyte(org.apache.jdo.tck.api.persistencecapable.NewObjectIdInstance)
javax.jdo.JDOFatalInternalException: Cannot populate the field "id" of
class
"org.apache.jdo.tck.pc.singlefieldidentity.PCPointSingleFieldPrimitivebyte"
since it is already populated.
at org.jpox.metadata.FieldMetaData.mergeORMData(FieldMetaData.java:451)
at org.jpox.metadata.ClassMetaData.mergeORMData(ClassMetaData.java:335)
at
org.jpox.metadata.MetaDataManager.addORMDataToClass(MetaDataManager.java:665)
at org.jpox.metadata.ClassMetaData.populate(ClassMetaData.java:395)
at
org.jpox.metadata.MetaDataManager.initialiseMetaDataForClass(MetaDataManager.java:965)
at
org.jpox.metadata.MetaDataManager.getParsedMetaDataForClass(MetaDataManager.java:434)
at
org.jpox.metadata.MetaDataManager.getMetaDataForClassOrInterface(MetaDataManager.java:338)
at
org.jpox.metadata.MetaDataManager.getMetaDataForClass(MetaDataManager.java:296)
at org.jpox.state.StateManagerImpl.<init>(StateManagerImpl.java:559)
at
org.jpox.AbstractPersistenceManager.internalMakePersistent(AbstractPersistenceManager.java:975)
at
org.jpox.AbstractPersistenceManager.makePersistent(AbstractPersistenceManager.java:1012)
at
org.apache.jdo.tck.api.persistencecapable.AbstractPersistenceCapableTest.makePersistent(AbstractPersistenceCapableTest.java:21)
at
org.apache.jdo.tck.api.persistencecapable.NewObjectIdInstance.singleFieldIdentityInitialized(NewObjectIdInstance.java:101)
at
org.apache.jdo.tck.api.persistencecapable.NewObjectIdInstance.testSingleFieldIdentityInitializedbyte(NewObjectIdInstance.java:138)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:203)
at
org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:128)
at
org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:106)
I have written a test case checking single field identity. For this
purpose, I created new PC classes, new jdo files, new orm files, and I
extended the schema for application identity. When I run the test case,
I get a JDOFatalInternalException from JPOX (see below). Currently, I
run build jpox-20050617.022105.jar.
I created a testcase doing the same thing :-
* abstract base class with concrete PC class
* specifying the details on JDO and ORM files
as you did and all worked fine. I'm using latest JPOX. Suggest that you try
the latest build of JPOX (http://www.jpox.org/downloads/nightly/)
--
-------------------------------------------------------------------
Michael Watzek [EMAIL PROTECTED] Engineering GmbH
mailto:[EMAIL PROTECTED] Buelowstr. 66
Tel.: ++49/30/235 520 36 10783 Berlin - Germany
Fax.: ++49/30/217 520 12 http://www.spree.de/
-------------------------------------------------------------------