Resource-based PlatformTransactionManager implementations defensively catch Throwable in doBegin in order to reliably close resource in case of OutOfMemoryError
Issue: SPR-10755
(cherry picked from commit 2e4eb9f)
@ -236,7 +236,7 @@ public class DataSourceTransactionManager extends AbstractPlatformTransactionMan
@@ -236,7 +236,7 @@ public class DataSourceTransactionManager extends AbstractPlatformTransactionMan
@ -191,7 +191,7 @@ public class JmsTransactionManager extends AbstractPlatformTransactionManager
@@ -191,7 +191,7 @@ public class JmsTransactionManager extends AbstractPlatformTransactionManager
@ -497,7 +497,7 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana
@@ -497,7 +497,7 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana
@ -580,7 +580,7 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana
@@ -580,7 +580,7 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana
@ -365,7 +365,7 @@ public class JdoTransactionManager extends AbstractPlatformTransactionManager
@@ -365,7 +365,7 @@ public class JdoTransactionManager extends AbstractPlatformTransactionManager
@ -423,7 +423,7 @@ public class JpaTransactionManager extends AbstractPlatformTransactionManager
@@ -423,7 +423,7 @@ public class JpaTransactionManager extends AbstractPlatformTransactionManager
closeEntityManagerAfterFailedBegin(txObject);
throwex;
}
catch(Exceptionex){
catch(Throwableex){
closeEntityManagerAfterFailedBegin(txObject);
thrownewCannotCreateTransactionException("Could not open JPA EntityManager for transaction",ex);
@ -139,7 +139,6 @@ public class CciLocalTransactionManager extends AbstractPlatformTransactionManag
@@ -139,7 +139,6 @@ public class CciLocalTransactionManager extends AbstractPlatformTransactionManag
@ -167,7 +166,7 @@ public class CciLocalTransactionManager extends AbstractPlatformTransactionManag
@@ -167,7 +166,7 @@ public class CciLocalTransactionManager extends AbstractPlatformTransactionManag