From 1de554b68a0e6eb68b060f3672fa5c9ec03ece3a Mon Sep 17 00:00:00 2001 From: Strong Liu Date: Thu, 31 May 2012 10:42:10 +0800 Subject: [PATCH] HHH-7298 regression, org.hibernate.ejb.test.lock.LockTest --- .../org/hibernate/ejb/test/lock/LockTest.java | 37 ---------- .../test/lock/LockTimeoutPropertyTest.java | 73 +++++++++++++++++++ 2 files changed, 73 insertions(+), 37 deletions(-) create mode 100644 hibernate-entitymanager/src/matrix/java/org/hibernate/ejb/test/lock/LockTimeoutPropertyTest.java diff --git a/hibernate-entitymanager/src/matrix/java/org/hibernate/ejb/test/lock/LockTest.java b/hibernate-entitymanager/src/matrix/java/org/hibernate/ejb/test/lock/LockTest.java index e27391f301..29444a31ab 100644 --- a/hibernate-entitymanager/src/matrix/java/org/hibernate/ejb/test/lock/LockTest.java +++ b/hibernate-entitymanager/src/matrix/java/org/hibernate/ejb/test/lock/LockTest.java @@ -53,43 +53,6 @@ public class LockTest extends BaseEntityManagerFunctionalTestCase { private static final Logger log = Logger.getLogger( LockTest.class ); - @Test - public void testLockTimeoutASNamedQueryHint(){ - EntityManager em = getOrCreateEntityManager(); - em.getTransaction().begin(); - Query query = em.createNamedQuery( "getAll" ); - query.setLockMode( LockModeType.PESSIMISTIC_READ ); - int timeout = ((QueryImpl)(((org.hibernate.ejb.QueryImpl)query).getHibernateQuery())).getLockOptions().getTimeOut(); - assertEquals( 3000, timeout ); - } - - @Override - protected void addConfigOptions(Map options) { - options.put( AvailableSettings.LOCK_TIMEOUT, "2000" ); - } - - @Test - @TestForIssue( jiraKey = "HHH-6256") - public void testTimeoutHint(){ - EntityManager em = getOrCreateEntityManager(); - em.getTransaction().begin(); - boolean b= em.getProperties().containsKey( AvailableSettings.LOCK_TIMEOUT ); - assertTrue( b ); - int timeout = Integer.valueOf( em.getProperties().get( AvailableSettings.LOCK_TIMEOUT ).toString() ); - assertEquals( 2000, timeout); - org.hibernate.ejb.QueryImpl q = (org.hibernate.ejb.QueryImpl) em.createQuery( "select u from UnversionedLock u" ); - timeout = ((QueryImpl)q.getHibernateQuery()).getLockOptions().getTimeOut(); - assertEquals( 2000, timeout ); - - Query query = em.createQuery( "select u from UnversionedLock u" ); - query.setLockMode(LockModeType.PESSIMISTIC_WRITE); - query.setHint( AvailableSettings.LOCK_TIMEOUT, 3000 ); - q = (org.hibernate.ejb.QueryImpl)query; - timeout = ((QueryImpl)q.getHibernateQuery()).getLockOptions().getTimeOut(); - assertEquals( 3000, timeout ); - em.getTransaction().rollback(); - em.close(); - } @Test diff --git a/hibernate-entitymanager/src/matrix/java/org/hibernate/ejb/test/lock/LockTimeoutPropertyTest.java b/hibernate-entitymanager/src/matrix/java/org/hibernate/ejb/test/lock/LockTimeoutPropertyTest.java new file mode 100644 index 0000000000..8d9eef9505 --- /dev/null +++ b/hibernate-entitymanager/src/matrix/java/org/hibernate/ejb/test/lock/LockTimeoutPropertyTest.java @@ -0,0 +1,73 @@ +package org.hibernate.ejb.test.lock; + +import java.util.Map; +import javax.persistence.EntityManager; +import javax.persistence.LockModeType; +import javax.persistence.Query; + +import org.junit.Test; + +import org.hibernate.dialect.H2Dialect; +import org.hibernate.ejb.AvailableSettings; +import org.hibernate.ejb.test.BaseEntityManagerFunctionalTestCase; +import org.hibernate.internal.QueryImpl; +import org.hibernate.testing.RequiresDialect; +import org.hibernate.testing.TestForIssue; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +/** + * no need to run this on DB matrix + * + * @author Strong Liu + */ +@RequiresDialect(H2Dialect.class) +public class LockTimeoutPropertyTest extends BaseEntityManagerFunctionalTestCase { + @Override + protected void addConfigOptions(Map options) { + options.put( AvailableSettings.LOCK_TIMEOUT, "2000" ); + } + + @Test + public void testLockTimeoutASNamedQueryHint(){ + EntityManager em = getOrCreateEntityManager(); + em.getTransaction().begin(); + Query query = em.createNamedQuery( "getAll" ); + query.setLockMode( LockModeType.PESSIMISTIC_READ ); + int timeout = ((QueryImpl)(((org.hibernate.ejb.QueryImpl)query).getHibernateQuery())).getLockOptions().getTimeOut(); + assertEquals( 3000, timeout ); + } + + + @Test + @TestForIssue( jiraKey = "HHH-6256") + public void testTimeoutHint(){ + EntityManager em = getOrCreateEntityManager(); + em.getTransaction().begin(); + boolean b= em.getProperties().containsKey( AvailableSettings.LOCK_TIMEOUT ); + assertTrue( b ); + int timeout = Integer.valueOf( em.getProperties().get( AvailableSettings.LOCK_TIMEOUT ).toString() ); + assertEquals( 2000, timeout); + org.hibernate.ejb.QueryImpl q = (org.hibernate.ejb.QueryImpl) em.createQuery( "select u from UnversionedLock u" ); + timeout = ((QueryImpl)q.getHibernateQuery()).getLockOptions().getTimeOut(); + assertEquals( 2000, timeout ); + + Query query = em.createQuery( "select u from UnversionedLock u" ); + query.setLockMode(LockModeType.PESSIMISTIC_WRITE); + query.setHint( AvailableSettings.LOCK_TIMEOUT, 3000 ); + q = (org.hibernate.ejb.QueryImpl)query; + timeout = ((QueryImpl)q.getHibernateQuery()).getLockOptions().getTimeOut(); + assertEquals( 3000, timeout ); + em.getTransaction().rollback(); + em.close(); + } + + + @Override + public Class[] getAnnotatedClasses() { + return new Class[] { + UnversionedLock.class + }; + } +}