Finally got some time to dig into this. The problem was I was attempting to create a bean that already existed (a bug in my test case). It is possible to get the original SQL exception message out of JPA, so I could know that I was getting a duplicate key?

-dain

On Jan 4, 2007, at 10:29 AM, Dain Sundstrom wrote:

I'm getting this exception printed to my log, but my tests work. Is my test doing something wrong?

<2|false|0.9.6-incubating> org.apache.openjpa.util.OptimisticException: Optimistic locking errors were detected when flushing to the data store. The following objects may have been concurrently modified in another transaction: [EMAIL PROTECTED] at org.apache.openjpa.kernel.BrokerImpl.newFlushException (BrokerImpl.java:2077) at org.apache.openjpa.kernel.BrokerImpl.flush (BrokerImpl.java:1927) at org.apache.openjpa.kernel.BrokerImpl.flushSafe (BrokerImpl.java:1825) at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion (BrokerImpl.java:1756) at org.apache.openejb.core.TransactionManagerWrapper $TransactionWrapper.beforeCompletion(TransactionManagerWrapper.java: 194) at org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompleti on(TransactionImpl.java:515) at org.apache.geronimo.transaction.manager.TransactionImpl.beforePrepare( TransactionImpl.java:399) at org.apache.geronimo.transaction.manager.TransactionImpl.commit (TransactionImpl.java:256) at org.apache.geronimo.transaction.manager.TransactionManagerImpl.commit( TransactionManagerImpl.java:264) at org.apache.openejb.core.TransactionManagerWrapper.commit (TransactionManagerWrapper.java:58) at org.apache.openejb.test.entity.cmr.AbstractCMRTest.completeTransaction (AbstractCMRTest.java:57) at org.apache.openejb.test.entity.cmr.OneToOneTests.test07_BSetAExistingB NewA(OneToOneTests.java:154)
        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:585)
at org.apache.openejb.test.NumberedTestCase.runTestMethod (NumberedTestCase.java:135) at org.apache.openejb.test.NumberedTestCase$1.protect (NumberedTestCase.java:120) at junit.framework.TestResult.runProtected(TestResult.java: 128) at org.apache.openejb.test.NumberedTestCase.run (NumberedTestCase.java:123) at org.apache.openejb.test.NumberedTestCase.run (NumberedTestCase.java:102)
        at org.apache.openejb.test.TestSuite.run(TestSuite.java:46)
        at org.apache.openejb.test.TestSuite.run(TestSuite.java:46)
        at org.apache.openejb.test.TestSuite.run(TestSuite.java:46)
        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:585)
at org.apache.maven.surefire.junit.JUnitTestSet.execute (JUnitTestSet.java:210) at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTest Set(AbstractDirectoryTestSuite.java:135) at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute (AbstractDirectoryTestSuite.java:160)
        at org.apache.maven.surefire.Surefire.run(Surefire.java:81)
        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:585)
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess (SurefireBooter.java:182) at org.apache.maven.surefire.booter.SurefireBooter.main (SurefireBooter.java:743) Caused by: <2|false|0.9.6-incubating> org.apache.openjpa.util.OptimisticException: An optimistic lock violation was detected when flushing object instance "[EMAIL PROTECTED]" to the data store. This indicates that the object was concurrently modified in another transaction. FailedObject: [EMAIL PROTECTED] at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInter nal(PreparedStatementManagerImpl.java:96) at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush (PreparedStatementManagerImpl.java:68) at org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flushPrimar yRow(OperationOrderUpdateManager.java:200) at org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flush (OperationOrderUpdateManager.java:86) at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush (AbstractUpdateManager.java:86) at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush (AbstractUpdateManager.java:69) at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush (JDBCStoreManager.java:511) at org.apache.openjpa.kernel.DelegatingStoreManager.flush (DelegatingStoreManager.java:127)
        ... 37 more

Reply via email to