From f0a7b51b30fd2cd5c18b8ed8d5b756a7a75dda32 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 4 Jul 2022 12:15:33 +0200 Subject: [PATCH] [jOOQ/jOOQ#13752] Returning null from transactionCoroutine throws NoSuchElementException --- .../kotlin/org/jooq/kotlin/coroutines/CoroutineExtensions.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/jOOQ-kotlin-coroutines/src/main/kotlin/org/jooq/kotlin/coroutines/CoroutineExtensions.kt b/jOOQ-kotlin-coroutines/src/main/kotlin/org/jooq/kotlin/coroutines/CoroutineExtensions.kt index 35ea77dd01..fd4bd0e2fd 100644 --- a/jOOQ-kotlin-coroutines/src/main/kotlin/org/jooq/kotlin/coroutines/CoroutineExtensions.kt +++ b/jOOQ-kotlin-coroutines/src/main/kotlin/org/jooq/kotlin/coroutines/CoroutineExtensions.kt @@ -1,6 +1,6 @@ package org.jooq.kotlin.coroutines -import kotlinx.coroutines.reactive.awaitFirst +import kotlinx.coroutines.reactive.awaitFirstOrNull import kotlinx.coroutines.reactor.mono import org.jooq.Configuration import org.jooq.DSLContext @@ -10,9 +10,10 @@ import org.jooq.DSLContext // ---------------------------------------------------------------------------- suspend fun DSLContext.transactionCoroutine(transactional: suspend (Configuration) -> T): T { + @Suppress("UNCHECKED_CAST") return transactionPublisher { c -> mono { transactional.invoke(c) } - }.awaitFirst() + }.awaitFirstOrNull() as T } \ No newline at end of file