From 361304b9f29779e9a2a13983ac8ee0700f51d5ee Mon Sep 17 00:00:00 2001 From: Karlatemp Date: Mon, 3 May 2021 11:57:50 +0800 Subject: [PATCH] Fix NPE in StateConnecting --- .../network/impl/netty/NettyNetworkHandler.kt | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/mirai-core/src/commonMain/kotlin/network/impl/netty/NettyNetworkHandler.kt b/mirai-core/src/commonMain/kotlin/network/impl/netty/NettyNetworkHandler.kt index 8cbef466c..e1104924c 100644 --- a/mirai-core/src/commonMain/kotlin/network/impl/netty/NettyNetworkHandler.kt +++ b/mirai-core/src/commonMain/kotlin/network/impl/netty/NettyNetworkHandler.kt @@ -217,11 +217,15 @@ internal open class NettyNetworkHandler( createConnection(decodePipeline) } - private val connectResult = async { - connection.join() - context[SsoProcessor].login(this@NettyNetworkHandler) - }.apply { - invokeOnCompletion { error -> + @Suppress("JoinDeclarationAndAssignment") + private val connectResult: Deferred + + init { + connectResult = async { + connection.join() + context[SsoProcessor].login(this@NettyNetworkHandler) + } + connectResult.invokeOnCompletion { error -> if (error == null) { this@NettyNetworkHandler.launch { resumeConnection() } } else { @@ -238,6 +242,7 @@ internal open class NettyNetworkHandler( } // and this error will also be thrown by `StateConnecting.resumeConnection` } + } override fun getCause(): Throwable? = collectiveExceptions.getLast()