diff --git a/spring-transaction/src/main/kotlin/org/jetbrains/exposed/spring/SpringTransactionManager.kt b/spring-transaction/src/main/kotlin/org/jetbrains/exposed/spring/SpringTransactionManager.kt index 3845ff1031..611082a126 100644 --- a/spring-transaction/src/main/kotlin/org/jetbrains/exposed/spring/SpringTransactionManager.kt +++ b/spring-transaction/src/main/kotlin/org/jetbrains/exposed/spring/SpringTransactionManager.kt @@ -4,7 +4,6 @@ import org.jetbrains.exposed.sql.Database import org.jetbrains.exposed.sql.Transaction import org.jetbrains.exposed.sql.statements.api.ExposedConnection import org.jetbrains.exposed.sql.statements.jdbc.JdbcConnectionImpl -import org.jetbrains.exposed.sql.transactions.DEFAULT_ISOLATION_LEVEL import org.jetbrains.exposed.sql.transactions.DEFAULT_REPETITION_ATTEMPTS import org.jetbrains.exposed.sql.transactions.TransactionInterface import org.jetbrains.exposed.sql.transactions.TransactionManager @@ -54,6 +53,9 @@ class SpringTransactionManager(private val _dataSource: DataSource, if (!TransactionSynchronizationManager.hasResource(_dataSource)) { TransactionSynchronizationManager.unbindResourceIfPossible(this) } + if (TransactionSynchronizationManager.isSynchronizationActive() && TransactionSynchronizationManager.getSynchronizations().isEmpty()) { + TransactionSynchronizationManager.clearSynchronization() + } TransactionManager.resetCurrent(null) }