Skip to content

URISyntaxException is raised if the spring boot application is started in a location that contains invalid URI characters #40615

@FrankKlOS

Description

@FrankKlOS

The stack trace below is logged, if our spring boot application is started in a path that contains for example '('.
The stack we are using is: thymeleaf together with webjars+jetty

Spring-Boot version: 3.2.4

Caused by: java.io.IOError: java.net.URISyntaxException: Illegal character in path at index 29: nested:/C:/DEV-Install/testaa tst (x86)/service-manager/apps/gateway/gateway-app.jar/!BOOT-INF/lib/i18next-1.11.5.jar	at org.springframework.boot.loader.nio.file.NestedPath.toUri(NestedPath.java:148)	at jdk.zipfs/jdk.nio.zipfs.ZipPath.toUri(ZipPath.java:201)	at org.eclipse.jetty.util.resource.FileSystemPool.mount(FileSystemPool.java:131)	at org.eclipse.jetty.util.resource.ResourceFactoryInternals$CompositeResourceFactory.mountIfNeeded(ResourceFactoryInternals.java:268)	at org.eclipse.jetty.util.resource.ResourceFactoryInternals$CompositeResourceFactory.newResource(ResourceFactoryInternals.java:225)	at org.eclipse.jetty.util.resource.ResourceFactoryInternals$LifeCycle.newResource(ResourceFactoryInternals.java:171)	at org.eclipse.jetty.util.resource.ResourceFactory.newResource(ResourceFactory.java:370)	at org.eclipse.jetty.ee10.servlet.ServletContextHandler$ServletContextApi.getResourceAsStream(ServletContextHandler.java:2834)	at org.springframework.web.context.support.ServletContextResource.isReadable(ServletContextResource.java:120)	at org.springframework.web.servlet.resource.PathResourceResolver.getResource(PathResourceResolver.java:190)	at org.springframework.web.servlet.resource.PathResourceResolver.getResource(PathResourceResolver.java:159)	at org.springframework.web.servlet.resource.PathResourceResolver.resolveUrlPathInternal(PathResourceResolver.java:149)	at org.springframework.web.servlet.resource.AbstractResourceResolver.resolveUrlPath(AbstractResourceResolver.java:53)	at org.springframework.web.servlet.resource.DefaultResourceResolverChain.resolveUrlPath(DefaultResourceResolverChain.java:82)	at org.springframework.web.servlet.resource.WebJarsResourceResolver.resolveUrlPathInternal(WebJarsResourceResolver.java:96)	at org.springframework.web.servlet.resource.AbstractResourceResolver.resolveUrlPath(AbstractResourceResolver.java:53)	at org.springframework.web.servlet.resource.DefaultResourceResolverChain.resolveUrlPath(DefaultResourceResolverChain.java:82)	at org.springframework.web.servlet.resource.CachingResourceResolver.resolveUrlPathInternal(CachingResourceResolver.java:172)	at org.springframework.web.servlet.resource.AbstractResourceResolver.resolveUrlPath(AbstractResourceResolver.java:53)	at org.springframework.web.servlet.resource.DefaultResourceResolverChain.resolveUrlPath(DefaultResourceResolverChain.java:82)	at org.springframework.web.servlet.resource.ResourceUrlProvider.getForLookupPath(ResourceUrlProvider.java:245)	at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter$ResourceUrlEncodingRequestWrapper.resolveUrlPath(ResourceUrlEncodingFilter.java:126)	at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter$ResourceUrlEncodingResponseWrapper.encodeURL(ResourceUrlEncodingFilter.java:159)	at org.thymeleaf.web.servlet.JakartaServletWebExchange.transformURL(JakartaServletWebExchange.java:124)	at org.thymeleaf.linkbuilder.StandardLinkBuilder.processLink(StandardLinkBuilder.java:547)	at org.thymeleaf.linkbuilder.StandardLinkBuilder.buildLink(StandardLinkBuilder.java:138)	at org.thymeleaf.context.AbstractEngineContext.buildLink(AbstractEngineContext.java:167)	at org.thymeleaf.standard.expression.LinkExpression.executeLinkExpression(LinkExpression.java:292)	at org.thymeleaf.standard.expression.SimpleExpression.executeSimple(SimpleExpression.java:85)	at org.thymeleaf.standard.expression.Expression.execute(Expression.java:109)	at org.thymeleaf.standard.expression.Expression.execute(Expression.java:138)	at org.thymeleaf.standard.processor.AbstractStandardExpressionAttributeTagProcessor.doProcess(AbstractStandardExpressionAttributeTagProcessor.java:144)	at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:74)	at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementTagProcessor.java:95)	at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process(ProcessorConfigurationUtils.java:633)	at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1314)	at org.thymeleaf.engine.OpenElementTag.beHandled(OpenElementTag.java:205)	at org.thymeleaf.engine.TemplateModel.process(TemplateModel.java:136)	at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:592)	at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1103)	at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1077)	at org.thymeleaf.spring6.view.ThymeleafView.renderFragment(ThymeleafView.java:372)	at org.thymeleaf.spring6.view.ThymeleafView.render(ThymeleafView.java:192)	at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1431)	at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1167)	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1106)	... 146 common frames omitted Caused by: java.net.URISyntaxException: Illegal character in path at index 29: nested:/C:/DEV-Install/testaa tst (x86)/service-manager/apps/gateway/gateway-app.jar/!BOOT-INF/lib/i18next-1.11.5.jar	at java.base/java.net.URI$Parser.fail(URI.java:2974)	at java.base/java.net.URI$Parser.checkChars(URI.java:3145)	at java.base/java.net.URI$Parser.parseHierarchical(URI.java:3227)	at java.base/java.net.URI$Parser.parse(URI.java:3175)	at java.base/java.net.URI.<init>(URI.java:623)	at org.springframework.boot.loader.nio.file.NestedPath.toUri(NestedPath.java:145)	... 191 common frames omitted 

Metadata

Metadata

Assignees

Labels

type: regressionA regression from a previous release

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions