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) {