Albert Lee created OPENJPA-2232:
-----------------------------------

             Summary: TestAudit failed against databases other than Derby
                 Key: OPENJPA-2232
                 URL: https://issues.apache.org/jira/browse/OPENJPA-2232
             Project: OpenJPA
          Issue Type: Test
          Components: jdbc
    Affects Versions: 2.3.0
            Reporter: Albert Lee


After TestAudit is changed/introduced recently, this test failed on some 
database platforms yielding the following exception:

TestAudit.testAuditorIsConfigured (org.apache.openjpa.audit)
    « hide details
    <openjpa-2.3.0-SNAPSHOT-runknown fatal store error> 
org.apache.openjpa.persistence.RollbackException: The transaction has been 
rolled back.  See the nested exceptions for details on the errors that occurred.
    FailedObject: org.apache.openjpa.audit.X@df0dfb
        at 
org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:594)
        at 
org.apache.openjpa.audit.TestAudit.createManagedObject(TestAudit.java:64)
        at org.apache.openjpa.audit.TestAudit.setUp(TestAudit.java:52)
        at junit.framework.TestCase.runBare(TestCase.java:125)
        at junit.framework.TestResult$1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:124)
        at junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:118)
        at junit.framework.TestSuite.runTest(TestSuite.java:208)
        at junit.framework.TestSuite.run(TestSuite.java:203)
        at sun.reflect.GeneratedMethodAccessor54.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:115)
        at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:102)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:180)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at 
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:350)
        at 
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1021)
    Caused by: <openjpa-2.3.0-SNAPSHOT-runknown fatal store error> 
org.apache.openjpa.persistence.EntityExistsException: The transaction has been 
rolled back.  See the nested exceptions for details on the errors that occurred.
    FailedObject: org.apache.openjpa.audit.X@df0dfb
        at 
org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2339)
        at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2176)
        at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2074)
        at 
org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1992)
        at 
org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
        at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1516)
        at 
org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:933)
        at 
org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:570)
        ... 22 more
    Caused by: <openjpa-2.3.0-SNAPSHOT-runknown fatal store error> 
org.apache.openjpa.persistence.EntityExistsException: Violation of PRIMARY KEY 
constraint 'PK__X__22E905E4'. Cannot insert duplicate key in object 'dbo.X'. 
{prepstmnt 22424958 INSERT INTO X (id, name, price) VALUES (?, ?, ?)} 
[code=2627, state=23000]
    FailedObject: org.apache.openjpa.audit.X@df0dfb
        at 
org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4926)
        at 
org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4901)
        at 
org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:136)
        at 
org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:78)
        at 
org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:143)
        at 
org.apache.openjpa.jdbc.kernel.BatchingPreparedStatementManagerImpl.flushAndUpdate(BatchingPreparedStatementManagerImpl.java:79)
        at 
org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:99)
        at 
org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:87)
        at 
org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:550)
        at 
org.apache.openjpa.jdbc.kernel.ConstraintUpdateManager.flush(ConstraintUpdateManager.java:106)
        at 
org.apache.openjpa.jdbc.kernel.BatchingConstraintUpdateManager.flush(BatchingConstraintUpdateManager.java:59)
        at 
org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:105)
        at 
org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:78)
        at 
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:735)
        at 
org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:131)
        ... 29 more
    Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: Violation of 
PRIMARY KEY constraint 'PK__X__22E905E4'. Cannot insert duplicate key in object 
'dbo.X'. {prepstmnt 22424958 INSERT INTO X (id, name, price) VALUES (?, ?, ?)} 
[code=2627, state=23000]
        at 
org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:219)
        at 
org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:195)
        at 
org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$1000(LoggingConnectionDecorator.java:59)
        at 
org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeUpdate(LoggingConnectionDecorator.java:1134)
        at 
org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:272)
        at 
org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeUpdate(JDBCStoreManager.java:1765)
        at 
org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.executeUpdate(PreparedStatementManagerImpl.java:267)
        at 
org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushAndUpdate(PreparedStatementManagerImpl.java:118)
        ... 39 more
    ------- Stderr: -------
    5  audit  INFO   [main] openjpa.Runtime - Starting OpenJPA 2.3.0-SNAPSHOT
    6  audit  INFO   [main] openjpa.jdbc.JDBC - Using dictionary class 
"org.apache.openjpa.jdbc.sql.SQLServerDictionary".

The test passed on Derby but failed in HSQL, MS SQLServer, MySQL, Oracle, DB2, 
Postgre, SolidDB and may be other databases.

The set of tests failed are:

TestAudit.testAuditorIsConfigured (org.apache.openjpa.audit)
TestAudit.testNewInstancesAreAudited (org.apache.openjpa.audit)
TestAudit.testUpdateOutsideTransactionAreAudited (org.apache.openjpa.audit)
TestAudit.testUpdateInsideTransactionAreAudited (org.apache.openjpa.audit)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to