Skip to content

Commit 289e59a

Browse files
scottmarlowsebersole
authored andcommitted
HHH-9927 add testcase for calling EntityManager.joinTransaction() with no active JTA transaction to verify that a TransactionRequiredException is thrown
1 parent eaf562b commit 289e59a

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

hibernate-entitymanager/src/test/java/org/hibernate/jpa/test/transaction/TransactionJoiningTest.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import javax.persistence.EntityManager;
1010
import javax.persistence.PersistenceException;
11+
import javax.persistence.TransactionRequiredException;
1112
import javax.transaction.Status;
1213
import java.util.Map;
1314
import java.util.concurrent.CountDownLatch;
@@ -29,6 +30,7 @@
2930

3031
import static org.junit.Assert.assertFalse;
3132
import static org.junit.Assert.assertTrue;
33+
import static org.junit.Assert.fail;
3234

3335
/**
3436
* Largely a copy of {@link org.hibernate.test.jpa.txn.JtaTransactionJoiningTest}
@@ -178,6 +180,21 @@ public void run() {
178180
em.close();
179181
}
180182

183+
@Test
184+
public void testTransactionRequiredException() throws Exception {
185+
186+
assertFalse("setup problem", JtaStatusHelper.isActive(TestingJtaPlatformImpl.INSTANCE.getTransactionManager()));
187+
188+
EntityManager entityManager = entityManagerFactory().createEntityManager();
189+
try {
190+
entityManager.joinTransaction();
191+
fail( "Expected joinTransaction() to fail since there is no active JTA transaction" );
192+
}
193+
catch (TransactionRequiredException expected) {
194+
195+
}
196+
}
197+
181198
@Override
182199
public Class[] getAnnotatedClasses() {
183200
return new Class[] {

0 commit comments

Comments
 (0)