From 5ffaea7a439bcf34be9834d80326f4fc92ebed91 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Mon, 3 Mar 2025 13:32:51 +0100 Subject: [PATCH] Avoid JarURLConnection resource leak in AbstractFileResolvingResource.exists() Closes gh-34528 --- .../core/io/AbstractFileResolvingResource.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spring-core/src/main/java/org/springframework/core/io/AbstractFileResolvingResource.java b/spring-core/src/main/java/org/springframework/core/io/AbstractFileResolvingResource.java index bd35c7e166c..84eff6587be 100644 --- a/spring-core/src/main/java/org/springframework/core/io/AbstractFileResolvingResource.java +++ b/spring-core/src/main/java/org/springframework/core/io/AbstractFileResolvingResource.java @@ -81,7 +81,10 @@ public abstract class AbstractFileResolvingResource extends AbstractResource { } } } - if (con.getContentLengthLong() > 0) { + // Check content-length entry but not for JarURLConnection where + // this would open the jar file but effectively never close it -> + // for jar entries, always fall back to stream existence instead. + if (!(con instanceof JarURLConnection) && con.getContentLengthLong() > 0) { return true; } if (httpCon != null) {