This issue is happening for Spring Boot generated JAR file When resolving for a path in JAR file jar:file:~/Documents/_GIT/xxxxx/example.jar!/BOOT-INF/classes!/com/xxxx in PathMatchingResourcePatternResolver.. The changes done in this commit seem to cause an issue.

Old Code:

for (Enumeration<JarEntry> entries = jarFile.entries(); entries.hasMoreElements(); ) {
                JarEntry entry = entries.nextElement();
                String entryPath = entry.getName();
                entryCache.add(entryPath);
                if (entryPath.startsWith(rootEntryPath)) {

New Code

for (String entryPath : jarFile.stream().map(JarEntry::getName).sorted().toList()) {
                entriesCache.add(entryPath);
                if (entryPath.startsWith(rootEntryPath)) {

Upon analyzing, I noticed jarFile.entries() produces a different file path compared to jarFile.stream().map(JarEntry::getName). For the new code, the generated entryPath has the BOOT-INFO/ prefix added to it and the following .startsWith() check fails because of that.

This creates problems in resolving a resource in the Spring-Boot generated JAR File for New Code.