db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Craig Russell (JIRA)" <j...@apache.org>
Subject [jira] Updated: (JDO-392) Deletion of objects when foreign-key is present : unexpected DB exceptions not handled
Date Sat, 29 Jul 2006 20:04:20 GMT
     [ http://issues.apache.org/jira/browse/JDO-392?page=all ]

Craig Russell updated JDO-392:
------------------------------

    Fix Version/s: JDO 2 maintenance release 1

Need to resolve these issues for maintenance release 1.

> Deletion of objects when foreign-key is present : unexpected DB exceptions not handled
> --------------------------------------------------------------------------------------
>
>                 Key: JDO-392
>                 URL: http://issues.apache.org/jira/browse/JDO-392
>             Project: JDO
>          Issue Type: Bug
>          Components: tck20
>    Affects Versions: JDO 2 final
>            Reporter: Andy Jefferson
>             Fix For: JDO 2 maintenance release 1
>
>
> When I change JPOX to check for foreign-key constraints and when deleting an object with
a FK present to just leave it to the DB to decide what to do (based on the specified FK) the
DB throws exceptions. Such as
>     [java] 1) test(org.apache.jdo.tck.extents.CloseAll)javax.jdo.JDODataStoreException:
Delete request failed: DELETE FROM datastoreidentity0.PERSONS WHERE DATASTORE_IDENTITY=?
>     [java]      at org.jpox.store.rdbms.request.DeleteRequest.execute(DeleteRequest.java:274)
>     [java]      at org.jpox.store.rdbms.table.ClassTable.delete(ClassTable.java:2495)
>     [java]      at org.jpox.store.StoreManager.delete(StoreManager.java:902)
>     [java]      at org.jpox.state.StateManagerImpl.internalDeletePersistent(StateManagerImpl.java:4206)
>     [java]      at org.jpox.state.StateManagerImpl.deletePersistent(StateManagerImpl.java:4161)
>     [java]      at org.jpox.AbstractPersistenceManager.internalDeletePersistent(AbstractPersistenceManager.java:1393)
>     [java]      at org.jpox.AbstractPersistenceManager.deletePersistent(AbstractPersistenceManager.java:1404)
>     [java]      at org.apache.jdo.tck.extents.ExtentTest.deleteEmployee(ExtentTest.java:200)
>     [java]      at org.apache.jdo.tck.extents.CloseAll.test(CloseAll.java:61)
>     [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:237)
>     [java]      at org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java:107)
>     [java]      at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:147)
>     [java]      at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:122)
>     [java] NestedThrowablesStackTrace:
>     [java] ERROR 23503: DELETE on table 'PERSONS' caused a violation of foreign key constraint
'PERS_MANAGER_FK' for key (885).  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.ReferencedKeyRIChecker.doCheck(Unknown
Source)
>     [java]      at org.apache.derby.impl.sql.execute.RISetChecker.doPKCheck(Unknown Source)
>     [java]      at org.apache.derby.impl.sql.execute.DeleteResultSet.runFkChecker(Unknown
Source)
>     [java]      at org.apache.derby.impl.sql.execute.DeleteResultSet.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.execute(Unknown
Source)
>     [java]      at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.execute(NewProxyPreparedStatement.java:911)
>     [java]      at org.jpox.store.rdbms.ParamLoggingPreparedStatement.execute(ParamLoggingPreparedStatement.java:213)
>     [java]      at org.jpox.store.rdbms.request.Request.executeUpdate(Request.java:88)
>     [java]      at org.jpox.store.rdbms.request.DeleteRequest.execute(DeleteRequest.java:260)
>     [java]      at org.jpox.store.rdbms.table.ClassTable.delete(ClassTable.java:2495)
>     [java]      at org.jpox.store.StoreManager.delete(StoreManager.java:902)
>     [java]      at org.jpox.state.StateManagerImpl.internalDeletePersistent(StateManagerImpl.java:4206)
>     [java]      at org.jpox.state.StateManagerImpl.deletePersistent(StateManagerImpl.java:4161)
>     [java]      at org.jpox.AbstractPersistenceManager.internalDeletePersistent(AbstractPersistenceManager.java:1393)
>     [java]      at org.jpox.AbstractPersistenceManager.deletePersistent(AbstractPersistenceManager.java:1404)
>     [java]      at org.apache.jdo.tck.extents.ExtentTest.deleteEmployee(ExtentTest.java:200)
>     [java]      at org.apache.jdo.tck.extents.CloseAll.test(CloseAll.java:61)
>     [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:237)
> The deletion of objects should be handled by the TCK or better defined.
> Alternatively the JDO2 spec should define what a JDO impl ought to do when deletePersistent
is called and the object has references to other objects via FKs. JPOX has been nulling these
out until now ... so the TCK ran ok. Now that we want to rely on the DB FKs we find this issue
so would like to know what is "expected behaviour"

-- 
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

        

Mime
View raw message