From 3bac176bf6420520b101730273a738af2cd5d071 Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Tue, 15 Jul 2025 15:32:11 +0200 Subject: [PATCH] Prevent UnsupportedOperationException in DownloadManager (#1521) CopyOnWriteArraySet does not support the usage of "removeAll" with a predicate --- .../tachidesk/manga/impl/download/DownloadManager.kt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/DownloadManager.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/DownloadManager.kt index 9cc46300..fc535a36 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/DownloadManager.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/download/DownloadManager.kt @@ -168,12 +168,14 @@ object DownloadManager { downloads: List = emptyList(), gqlEmit: Boolean = false, ) { - downloadUpdates.removeAll { update -> - downloads.any { download -> - download.downloadChapter.chapter.id == - update.downloadChapter.chapter.id + val outdatedUpdates = + downloadUpdates.filter { update -> + downloads.any { download -> + download.downloadChapter.chapter.id == + update.downloadChapter.chapter.id + } } - } + downloadUpdates.removeAll(outdatedUpdates) downloadUpdates.addAll(downloads) // There is a problem where too many immediate updates can cause the client to lag out (e.g., in case it has to