From e269d0d20637cb933f916e5c198fbea0b5d968fc Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Wed, 2 Apr 2025 16:05:33 +0600 Subject: [PATCH] fix in transactions --- CHANGELOG.md | 2 ++ transactions/src/commonMain/kotlin/TransactionsDSL.kt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8230b85c13..c470ff82327 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ * `Koin`: `4.0.2` -> `4.0.3` * `Coroutines`: * Add `SmartKeyRWLocker.withWriteLocks` extension with vararg keys +* `Transactions`: + * Fix order of rollback actions calling ## 0.25.3 diff --git a/transactions/src/commonMain/kotlin/TransactionsDSL.kt b/transactions/src/commonMain/kotlin/TransactionsDSL.kt index a743b03c4a9..358701cbf8c 100644 --- a/transactions/src/commonMain/kotlin/TransactionsDSL.kt +++ b/transactions/src/commonMain/kotlin/TransactionsDSL.kt @@ -71,7 +71,7 @@ suspend fun doSuspendTransaction( return runCatching { transactionsDSL.block() }.onFailure { e -> - transactionsDSL.rollbackActions.forEach { + transactionsDSL.rollbackActions.reversed().forEach { runCatching { it.invoke(e) }.onFailure { ee ->