From 4bc714248bd3a31356b6ca5879b55a2f4848d9b2 Mon Sep 17 00:00:00 2001 From: Syer10 Date: Mon, 7 Mar 2022 15:50:20 -0500 Subject: [PATCH] Fix sources list of one source throws an exception --- .../src/main/kotlin/suwayomi/tachidesk/manga/impl/Source.kt | 4 +++- .../tachidesk/manga/impl/util/source/GetCatalogueSource.kt | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/Source.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/Source.kt index b5b21dfe02..8688e1d13b 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/Source.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/Source.kt @@ -24,6 +24,7 @@ import suwayomi.tachidesk.manga.impl.extension.Extension.getExtensionIconUrl import suwayomi.tachidesk.manga.impl.util.source.GetCatalogueSource.getCatalogueSource import suwayomi.tachidesk.manga.impl.util.source.GetCatalogueSource.getCatalogueSourceOrStub import suwayomi.tachidesk.manga.impl.util.source.GetCatalogueSource.unregisterCatalogueSource +import suwayomi.tachidesk.manga.impl.util.source.StubSource import suwayomi.tachidesk.manga.model.dataclass.SourceDataClass import suwayomi.tachidesk.manga.model.table.ExtensionTable import suwayomi.tachidesk.manga.model.table.SourceTable @@ -36,8 +37,9 @@ object Source { fun getSourceList(): List { return transaction { - SourceTable.selectAll().map { + SourceTable.selectAll().mapNotNull { val catalogueSource = getCatalogueSourceOrStub(it[SourceTable.id].value) + if (catalogueSource is StubSource) return@mapNotNull null val sourceExtension = ExtensionTable.select { ExtensionTable.id eq it[SourceTable.extension] }.first() SourceDataClass( diff --git a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/util/source/GetCatalogueSource.kt b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/util/source/GetCatalogueSource.kt index 1d3496e3b0..4972eff88e 100644 --- a/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/util/source/GetCatalogueSource.kt +++ b/server/src/main/kotlin/suwayomi/tachidesk/manga/impl/util/source/GetCatalogueSource.kt @@ -57,7 +57,7 @@ object GetCatalogueSource { } fun getCatalogueSourceOrStub(sourceId: Long): CatalogueSource { - return getCatalogueSource(sourceId) ?: StubSource(sourceId) + return runCatching { getCatalogueSource(sourceId) }.getOrNull() ?: StubSource(sourceId) } fun registerCatalogueSource(sourcePair: Pair) {