From 15e253365ab7fbca3a957372aa93fdfe4a0a6971 Mon Sep 17 00:00:00 2001 From: Stefan Mogeritsch Date: Mon, 9 Mar 2026 11:58:00 +0100 Subject: [PATCH] fix: wrap browser opening in `withContext(Dispatchers.IO)` for JVM OIDC callback Ensures proper threading for desktop actions, preventing potential blocking issues during browser invocation. Signed-off-by: Stefan Mogeritsch --- .../at/mocode/frontend/core/auth/data/OidcCallback.jvm.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/frontend/core/auth/src/jvmMain/kotlin/at/mocode/frontend/core/auth/data/OidcCallback.jvm.kt b/frontend/core/auth/src/jvmMain/kotlin/at/mocode/frontend/core/auth/data/OidcCallback.jvm.kt index 61e3e49b..5db1f5a2 100644 --- a/frontend/core/auth/src/jvmMain/kotlin/at/mocode/frontend/core/auth/data/OidcCallback.jvm.kt +++ b/frontend/core/auth/src/jvmMain/kotlin/at/mocode/frontend/core/auth/data/OidcCallback.jvm.kt @@ -2,7 +2,10 @@ package at.mocode.frontend.core.auth.data import com.sun.net.httpserver.HttpServer import kotlinx.coroutines.CompletableDeferred +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext import kotlinx.coroutines.withTimeoutOrNull +import java.awt.Desktop import java.net.InetSocketAddress import java.net.URI @@ -59,7 +62,9 @@ actual suspend fun launchOidcFlow( // Browser öffnen try { - java.awt.Desktop.getDesktop().browse(URI(authUrl)) + withContext(Dispatchers.IO) { + Desktop.getDesktop().browse(URI(authUrl)) + } } catch (e: Exception) { server.stop(0) return OidcCallbackResult.Error("browser_error", "Browser konnte nicht geöffnet werden: ${e.message}")