Skip to content

Use StringUtils.uriDecode where feasible #46751

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 2 commits into from
Closed

Conversation

nosan
Copy link
Contributor

@nosan nosan commented Aug 9, 2025

See #44945

Signed-off-by: Dmytro Nosan <dimanosan@gmail.com>
Signed-off-by: Dmytro Nosan <dimanosan@gmail.com>
@nosan
Copy link
Contributor Author

nosan commented Aug 9, 2025

Unfortunately, because of the following error, org.springframework.boot.loader.net.util.UrlDecoder cannot be replaced

Using start class org.test.SampleApplicationUsing destination directory /Users/dmytronosan/IdeaProjects/spring-boot/build-plugin/spring-boot-antlib/build/it/sample/targetExtracting spring-boot-loader to /Users/dmytronosan/IdeaProjects/spring-boot/build-plugin/spring-boot-antlib/build/it/sample/target/dependencyCopying 1 resource to /Users/dmytronosan/IdeaProjects/spring-boot/build-plugin/spring-boot-antlib/build/it/sample/target/dependencyEmbedding spring-boot-loader v4.0.0-SNAPSHOT...Building jar: /Users/dmytronosan/IdeaProjects/spring-boot/build-plugin/spring-boot-antlib/build/it/sample/target/found.jarChecking 
/Users/dmytronosan/IdeaProjects/spring-boot/build-plugin/spring-boot-antlib/build/it/sample/target/found.jarException 
in thread "main" java.lang.NoClassDefFoundError: org/springframework/util/StringUtils
at org.springframework.boot.loader.net.protocol.nested.NestedLocation.fromUrl(NestedLocation.java:79)
at org.springframework.boot.loader.net.protocol.nested.NestedUrlConnection.parseNestedLocation(NestedUrlConnection.java:79)
at org.springframework.boot.loader.net.protocol.nested.NestedUrlConnection.<init>(NestedUrlConnection.java:72)
at org.springframework.boot.loader.net.protocol.nested.NestedUrlConnection.<init>(NestedUrlConnection.java:67)
at org.springframework.boot.loader.net.protocol.nested.Handler.openConnection(Handler.java:48)
at java.base/java.net.URL.openConnection(URL.java:1206)
at org.springframework.boot.loader.net.protocol.jar.JarUrlConnection.<init>(JarUrlConnection.java:88)
at org.springframework.boot.loader.net.protocol.jar.JarUrlConnection.open(JarUrlConnection.java:353)
at org.springframework.boot.loader.net.protocol.jar.Handler.openConnection(Handler.java:46)
at java.base/java.net.URL.openConnection(URL.java:1206)
at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.getJarFile(JarUrlClassLoader.java:183)
at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.definePackage(JarUrlClassLoader.java:146)
at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.definePackageIfNecessary(JarUrlClassLoader.java:129)
at org.springframework.boot.loader.net.protocol.jar.JarUrlClassLoader.loadClass(JarUrlClassLoader.java:102)
at org.springframework.boot.loader.launch.LaunchedClassLoader.loadClass(LaunchedClassLoader.java:91)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:543)
at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:99)
at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64)
at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40)Caused by: java.lang.ClassNotFoundException: org.springframework.util.StringUtils
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:490)	... 21 moreJava Result: 1


@nosan
Copy link
Contributor Author

nosan commented Aug 9, 2025

My initial proposal was nosan@2f91fe2, but these changes break the spring-boot-antlib build due to the error that I commented on above.

@snicoll snicoll added type: task A general task and removed status: waiting-for-triage An issue we've not yet triaged labels Aug 11, 2025
@snicoll snicoll added this to the 4.0.0-M2 milestone Aug 11, 2025
snicoll pushed a commit that referenced this pull request Aug 11, 2025
See gh-46751

Signed-off-by: Dmytro Nosan <dimanosan@gmail.com>
snicoll added a commit that referenced this pull request Aug 11, 2025
@snicoll snicoll closed this in b8388e3 Aug 11, 2025
@snicoll snicoll self-assigned this Aug 11, 2025
@snicoll
Copy link
Member

snicoll commented Aug 11, 2025

@nosan given we can't access spring-core in the loader and we want to avoid inconsistencies, I rather copied over Spring Framework's equivalent. This would expand its use and potentially help us refine the current algorithm.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: task A general task
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants