Hi Andy,

I'm investigating JDO-100 ("Insert request failed ... because it would have caused a duplicate key value").

The duplicate key exception is thrown because there is an exception in a previous run during teardown preventing to delete the instance in the datastore.

That exception is a NoSuchMethodError thrown by the enhanced code (see below) of a class "PCPointSingleFieldDate" in methods "jdoCopyKeyFieldsFromObjectId". I decompiled the code of that class. It seems that the JPOX enhancer generates a java.util.Date constructor call that does not exist. This is an excerpt of the decompiled code:

    protected void jdoCopyKeyFieldsFromObjectId(Object oid)
    {
        if(!(oid instanceof ObjectIdentity))
        {
throw new ClassCastException("key class is not javax.jdo.identity.ObjectIdentity or null");
        } else
        {
            ObjectIdentity o = (ObjectIdentity)oid;
            id = new Date(o.getKey());
            return;
        }
    }

Regards,
Michael

[java] testSingleFieldIdentityInitializedDate(org.apache.jdo.tck.api.persistencecapable.NewObjectIdInstance)javax
.jdo.JDOFatalException: Exception during tearDown
    [java]      at org.apache.jdo.tck.JDO_Test.tearDown(JDO_Test.java:281)
    [java]      at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:211)
[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] NestedThrowablesStackTrace:
[java] java.lang.NoSuchMethodError: java.util.Date.<init>(Ljava/lang/Object;)V [java] at org.apache.jdo.tck.pc.singlefieldidentity.PCPointSingleFieldDate.jdoCopyKeyFieldsFromObjectId(PCPoint
SingleFieldDate.java)
[java] at org.apache.jdo.tck.pc.singlefieldidentity.PCPointSingleFieldDate.jdoNewInstance(PCPointSingleFieldDat
e.java)
[java] at javax.jdo.spi.JDOImplHelper.newInstance(JDOImplHelper.java:199) [java] at org.jpox.state.StateManagerImpl.<init>(StateManagerImpl.java:340) [java] at org.jpox.AbstractPersistenceManager.getObjectById(AbstractPersistenceManager.java:2322) [java] at org.jpox.AbstractPersistenceManager.getObjectById(AbstractPersistenceManager.java:2230) [java] at org.apache.jdo.tck.JDO_Test.deleteTearDownInstances(JDO_Test.java:336) [java] at org.apache.jdo.tck.JDO_Test.localTearDown(JDO_Test.java:292)
    [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 org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:128) [java] at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:106)
--
-------------------------------------------------------------------
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/
-------------------------------------------------------------------

Reply via email to