- 
                Notifications
    You must be signed in to change notification settings 
- Fork 38.8k
Closed
Labels
in: coreIssues in core modules (aop, beans, core, context, expression)Issues in core modules (aop, beans, core, context, expression)type: regressionA bug that is also a regressionA bug that is also a regression
Milestone
Description
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.
botex98
Metadata
Metadata
Assignees
Labels
in: coreIssues in core modules (aop, beans, core, context, expression)Issues in core modules (aop, beans, core, context, expression)type: regressionA bug that is also a regressionA bug that is also a regression