Fix CacheDownloader locking up indefinitely if connect() fails

Signed-off-by: Graham <gpe@openrs2.org>
master
Graham 3 weeks ago
parent 8ef3ef0ba5
commit 8a7ca33aa4
  1. 6
      archive/src/main/kotlin/org/openrs2/archive/cache/CacheDownloader.kt

@ -14,6 +14,7 @@ import org.openrs2.net.awaitSuspend
import java.net.URI import java.net.URI
import java.net.http.HttpClient import java.net.http.HttpClient
import java.net.http.HttpRequest import java.net.http.HttpRequest
import kotlin.coroutines.resumeWithException
import kotlin.coroutines.suspendCoroutine import kotlin.coroutines.suspendCoroutine
@Singleton @Singleton
@ -119,6 +120,11 @@ public class CacheDownloader @Inject constructor(
bootstrap.handler(initializer) bootstrap.handler(initializer)
.connect(hostname, PORT) .connect(hostname, PORT)
.addListener { future ->
if (!future.isSuccess) {
continuation.resumeWithException(future.cause())
}
}
} }
} finally { } finally {
group.shutdownGracefully().awaitSuspend() group.shutdownGracefully().awaitSuspend()

Loading…
Cancel
Save