From 071e22d84b2790b98f5f8b8d0f85d0d2a6541fbd Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Sun, 18 Oct 2026 09:35:57 +0200 Subject: [PATCH] =?utf8?q?=F0=9F=90=9B=20Mark=20image=20as=20failed=20when?= =?utf8?q?=20it=20was=20rejected?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../kotlin/net/pterodactylus/sone/core/DefaultElementLoader.kt | 3 +++ .../net/pterodactylus/sone/core/DefaultElementLoaderTest.kt | 8 ++++++++ 2 files changed, 11 insertions(+) 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) -- 2.7.4