From a27af0b64273127b1599d760f7b285d90909bfa3 Mon Sep 17 00:00:00 2001 From: Mitchell Syer Date: Sun, 20 Mar 2022 11:54:09 -0400 Subject: [PATCH] Fix sources list of one source throws an exception (#308) --- .../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 b5b21dfe..8688e1d1 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 1d3496e3..4972eff8 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) {