diff --git a/src/main/java/mdnet/cache/CachingInputStream.java b/src/main/java/mdnet/cache/CachingInputStream.java index cec35a4..b5f06f6 100644 --- a/src/main/java/mdnet/cache/CachingInputStream.java +++ b/src/main/java/mdnet/cache/CachingInputStream.java @@ -40,6 +40,19 @@ public class CachingInputStream extends ProxyInputStream { @Override public void close() throws IOException { + if (read() == EOF) { + try { + in.close(); + } catch (IOException ignored) { + } + try { + cache.close(); + } catch (IOException ignored) { + } + onClose.run(); + + return; + } executor.submit(() -> { try { IOUtils.copy(in, cache); diff --git a/src/test/kotlin/mdnet/server/ImageServerTest.kt b/src/test/kotlin/mdnet/server/ImageServerTest.kt index 4e91a54..4b27814 100644 --- a/src/test/kotlin/mdnet/server/ImageServerTest.kt +++ b/src/test/kotlin/mdnet/server/ImageServerTest.kt @@ -150,9 +150,6 @@ class ImageServerTest : FreeSpec() { response.shouldHaveHeader("Content-Length", mockData.size.toString()) IOUtils.toByteArray(response.body.stream).shouldBe(mockData) response.close() - - // wait for the executor to commit - delay(100) } } }