From: David ‘Bombe’ Roden Date: Sun, 18 Oct 2026 07:35:57 +0000 (+0200) Subject: 🐛 Mark image as failed when it was rejected X-Git-Tag: v83^2~5^2~4 X-Git-Url: https://git.pterodactylus.net/?a=commitdiff_plain;h=071e22d84b2790b98f5f8b8d0f85d0d2a6541fbd;p=Sone.git 🐛 Mark image as failed when it was rejected --- diff --git a/src/main/kotlin/net/pterodactylus/sone/core/DefaultElementLoader.kt b/src/main/kotlin/net/pterodactylus/sone/core/DefaultElementLoader.kt index 12d24e4..a8f1bea 100644 --- a/src/main/kotlin/net/pterodactylus/sone/core/DefaultElementLoader.kt +++ b/src/main/kotlin/net/pterodactylus/sone/core/DefaultElementLoader.kt @@ -97,6 +97,9 @@ class DefaultElementLoader(private val freenetInterface: FreenetInterface, ticke failureCache.getIfPresent(normalizedLink)?.run { return LinkedElement(link, failed = true) } + rejectedElements[normalizedLink]?.run { + return LinkedElement(link, failed = true) + } if (loadingLinks.getIfPresent(normalizedLink) == null) { loadingLinks.put(normalizedLink, true) freenetInterface.startFetch(FreenetURI(link), callback) diff --git a/src/test/kotlin/net/pterodactylus/sone/core/DefaultElementLoaderTest.kt b/src/test/kotlin/net/pterodactylus/sone/core/DefaultElementLoaderTest.kt index 61b2560..4e9a28d 100644 --- a/src/test/kotlin/net/pterodactylus/sone/core/DefaultElementLoaderTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/core/DefaultElementLoaderTest.kt @@ -204,6 +204,14 @@ class DefaultElementLoaderTest { } @Test + fun `element will not be loaded again if it was rejected`() { + runWithCallback(IMAGE_ID) { elementLoader, _, callback, _ -> + callback.shouldCancel(freenetURI, "image/test", Long.MAX_VALUE) + assertThat(elementLoader.loadElement(IMAGE_ID).failed, equalTo(true)) + } + } + + @Test fun `image is marked as failed when failed-method in callback was called`() { runWithCallback(IMAGE_ID) { elementLoader, _, callback, _ -> callback.failed(freenetURI)