openjpa-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dwo...@apache.org
Subject svn commit: r931756 - /openjpa/branches/2.0.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestPessimisticLocks.java
Date Thu, 08 Apr 2010 02:15:59 GMT
Author: dwoods
Date: Thu Apr  8 02:15:59 2010
New Revision: 931756

URL: http://svn.apache.org/viewvc?rev=931756&view=rev
Log:
OPENJPA-1602: check in test case from trunk r931628 by Fay

Modified:
    openjpa/branches/2.0.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestPessimisticLocks.java

Modified: openjpa/branches/2.0.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestPessimisticLocks.java
URL: http://svn.apache.org/viewvc/openjpa/branches/2.0.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestPessimisticLocks.java?rev=931756&r1=931755&r2=931756&view=diff
==============================================================================
--- openjpa/branches/2.0.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestPessimisticLocks.java
(original)
+++ openjpa/branches/2.0.x/openjpa-persistence-locking/src/test/java/org/apache/openjpa/persistence/lockmgr/TestPessimisticLocks.java
Thu Apr  8 02:15:59 2010
@@ -334,6 +334,31 @@ public class TestPessimisticLocks extend
         em2.close();
     }
 
+    /*
+     * Test multiple execution of the same query with pessimistic lock.
+     */
+    public void testRepeatedQueryWithPessimisticLocks() {
+        EntityManager em = emf.createEntityManager();
+        resetSQL();
+        em.getTransaction().begin();
+        String jpql = "select e.firstName from Employee e where e.id = 1";
+        Query q1 = em.createQuery(jpql);
+        q1.setLockMode(LockModeType.PESSIMISTIC_WRITE);
+        String firstName1 = (String) q1.getSingleResult();
+        //Expected sql for Derby is:
+        //SELECT t0.firstName FROM Employee t0 WHERE (t0.id = CAST(? AS BIGINT)) FOR UPDATE
WITH RR
+        String SQL1 = toString(sql);
+        
+        // run the second time
+        resetSQL();
+        Query q2 = em.createQuery(jpql);
+        q2.setLockMode(LockModeType.PESSIMISTIC_WRITE);
+        String firstName2 = (String) q2.getSingleResult();
+        String SQL2 = toString(sql);
+        assertEquals(SQL1, SQL2);
+        em.getTransaction().commit();
+    }
+
     /**
      * Assert that an exception of proper type has been thrown. Also checks that
      * that the exception has populated the failed object.



Mime
View raw message