|
|
|
@ -179,7 +179,7 @@ public class DataSourceTransactionManager extends AbstractPlatformTransactionMan |
|
|
|
|
DataSourceTransactionObject txObject = new DataSourceTransactionObject(); |
|
|
|
|
txObject.setSavepointAllowed(isNestedTransactionAllowed()); |
|
|
|
|
ConnectionHolder conHolder = |
|
|
|
|
(ConnectionHolder) TransactionSynchronizationManager.getResource(this.dataSource); |
|
|
|
|
(ConnectionHolder) TransactionSynchronizationManager.getResource(this.dataSource); |
|
|
|
|
txObject.setConnectionHolder(conHolder, false); |
|
|
|
|
return txObject; |
|
|
|
|
} |
|
|
|
@ -238,7 +238,10 @@ public class DataSourceTransactionManager extends AbstractPlatformTransactionMan |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
catch (Throwable ex) { |
|
|
|
|
DataSourceUtils.releaseConnection(con, this.dataSource); |
|
|
|
|
if (txObject.isNewConnectionHolder()) { |
|
|
|
|
DataSourceUtils.releaseConnection(con, this.dataSource); |
|
|
|
|
txObject.setConnectionHolder(null, false); |
|
|
|
|
} |
|
|
|
|
throw new CannotCreateTransactionException("Could not open JDBC Connection for transaction", ex); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|