[ http://issues.apache.org/jira/browse/JDO-143?page=comments#action_12330525 ]
Michelle Caisse commented on JDO-143: ------------------------------------- Currently values for Collections of Collection types are obtained as a Vector with one value for each different datatype represented in the fields of the class. Each field of the same data type is assigned the same instance from this Vector. org.apache.jdo.tck.models.fieldtypes.FirstSetOfTestValuesForCollection.java and ...SecondSetOfTestValuesForCollection.java each contain a vector field for each data type. I propose removing these two classes from the repository, adding a static method to org.apache.jdo.tck.models.fieldtypes.TestUtil.java that takes the field data type and an integer specifying whether this is the first or second value as arguments, and returns a new Vector of new object instances on each invocation. TestCollectionCollections.java must also be modified to use the static method to get test values. Its checkValues() method must be modified to use a CollectionCollection type as the standard rather than using a FirstSetOfTestValuesForCollection or SecondSetOfTestValuesForCollection type as the standard. If we decide to go ahead with this change, all the other Test*Collection.java files will have to be changed as described. I would also address issues JDO-145 and JDO151- in the same checkin, because they involve the same set of files. > ERROR 23503: INSERT on table 'COLLECTION_OF_SIMPLE_CLASS3' caused a violation > of foreign key constraint > ------------------------------------------------------------------------------------------------------- > > Key: JDO-143 > URL: http://issues.apache.org/jira/browse/JDO-143 > Project: JDO > Type: Bug > Components: tck20 > Reporter: Michelle Caisse > Assignee: Michelle Caisse > > [java] 1) > test(org.apache.jdo.tck.models.fieldtypes.TestCollectionCollections)javax.jdo.JDODataStoreException: > Add request failed : INSERT INTO > applicationidentity0.COLLECTION_OF_SIMPLE_CLASS3 > (IDENTIFIER,ALLOW_DUPLICATES,SIMPCLSREF) VALUES (?,?,?) > [java] at > org.jpox.store.rdbms.scostore.NormalSetStore.add(NormalSetStore.java:672) > [java] at > org.jpox.sco.SCOUtils.updateStoreWithCollection(SCOUtils.java:489) > [java] at > org.jpox.store.mapping.container.CollectionMapping.postUpdate(CollectionMapping.java:279) > [java] at > org.jpox.store.rdbms.request.UpdateRequest.execute(UpdateRequest.java:266) > [java] at > org.jpox.store.rdbms.table.ClassTable.update(ClassTable.java:1838) > [java] at org.jpox.store.StoreManager.update(StoreManager.java:782) > [java] at > org.jpox.state.StateManagerImpl.flush(StateManagerImpl.java:4298) > [java] at > org.jpox.state.StateManagerImpl.runReachability(StateManagerImpl.java:3102) > [java] at > org.jpox.AbstractPersistenceManager.preCommit(AbstractPersistenceManager.java:3049) > [java] at > org.jpox.NonmanagedTransaction.commit(NonmanagedTransaction.java:419) > [java] at > org.apache.jdo.tck.models.fieldtypes.TestCollectionCollections.runTest(TestCollectionCollections.java:97) > [java] at > org.apache.jdo.tck.models.fieldtypes.TestCollectionCollections.test(TestCollectionCollections.java:69) > [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 org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:204) > [java] at > org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:115) > [java] at > org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:93) > [java] NestedThrowablesStackTrace: > [java] ERROR 23503: INSERT on table 'COLLECTION_OF_SIMPLE_CLASS3' caused > a violation of foreign key constraint SQL050921005031671' for key > (1127341751473). The statement has been rolled back. > [java] at > org.apache.derby.iapi.error.StandardException.newException(Unknown Source) > [java] at > org.apache.derby.impl.sql.execute.ForeignKeyRIChecker.doCheck(Unknown Source) > [java] at > org.apache.derby.impl.sql.execute.GenericRIChecker.doCheck(Unknown Source) > [java] at > org.apache.derby.impl.sql.execute.RISetChecker.doFKCheck(Unknown Source) > [java] at > org.apache.derby.impl.sql.execute.InsertResultSet.normalInsertCore(Unknown > Source) > [java] at > org.apache.derby.impl.sql.execute.InsertResultSet.open(Unknown Source) > [java] at > org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source) > [java] at > org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source) > [java] at > org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown > Source) > [java] at > org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeUpdate(Unknown > Source) > [java] at > com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105) > [java] at > org.jpox.store.rdbms.scostore.BaseContainerStore.executeUpdate(BaseContainerStore.java:97) > [java] at > org.jpox.store.rdbms.scostore.NormalSetStore.add(NormalSetStore.java:654) > [java] at > org.jpox.sco.SCOUtils.updateStoreWithCollection(SCOUtils.java:489) > [java] at > org.jpox.store.mapping.container.CollectionMapping.postUpdate(CollectionMapping.java:279) > [java] at > org.jpox.store.rdbms.request.UpdateRequest.execute(UpdateRequest.java:266) > [java] at > org.jpox.store.rdbms.table.ClassTable.update(ClassTable.java:1838) > [java] at org.jpox.store.StoreManager.update(StoreManager.java:782) > [java] at > org.jpox.state.StateManagerImpl.flush(StateManagerImpl.java:4298) > [java] at > org.jpox.state.StateManagerImpl.runReachability(StateManagerImpl.java:3102) > [java] at > org.jpox.AbstractPersistenceManager.preCommit(AbstractPersistenceManager.java:3049) > [java] at > org.jpox.NonmanagedTransaction.commit(NonmanagedTransaction.java:419) > [java] at > org.apache.jdo.tck.models.fieldtypes.TestCollectionCollections.runTest(TestCollectionCollections.java:97) > [java] at > org.apache.jdo.tck.models.fieldtypes.TestCollectionCollections.test(TestCollectionCollections.java:69) > [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 org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:204) > [java] at > org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:115) > [java] at > org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:93) > Possibly due to a misordering of inserts required for this operation? -- 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
