Don't crash on timeout in renewCache() (#8986)

Fixes #8962.

withTimeout throws a TimeoutCancellationException if the timeout
expires. To avoid crashing renewalJob when there are no extensions,
use withTimeoutOrNull which does not throw on timeout.

(cherry picked from commit 3a82b4d924ae7207f7d1c1b23d2a71a1e7d09258)
This commit is contained in:
Two-Ai 2023-01-25 18:18:17 -05:00 committed by Jobobby04
parent acc3e16230
commit d08a3bd2d0

View File

@ -28,7 +28,7 @@ import kotlinx.coroutines.flow.onStart
import kotlinx.coroutines.flow.receiveAsFlow import kotlinx.coroutines.flow.receiveAsFlow
import kotlinx.coroutines.flow.shareIn import kotlinx.coroutines.flow.shareIn
import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.withTimeout import kotlinx.coroutines.withTimeoutOrNull
import logcat.LogPriority import logcat.LogPriority
import tachiyomi.domain.chapter.model.Chapter import tachiyomi.domain.chapter.model.Chapter
import tachiyomi.domain.manga.model.Manga import tachiyomi.domain.manga.model.Manga
@ -291,7 +291,7 @@ class DownloadCache(
var sources = getSources() var sources = getSources()
// Try to wait until extensions and sources have loaded // Try to wait until extensions and sources have loaded
withTimeout(30.seconds) { withTimeoutOrNull(30.seconds) {
while (!extensionManager.isInitialized) { while (!extensionManager.isInitialized) {
delay(2.seconds) delay(2.seconds)
} }