Skip to content

IllegalArgumentException can be thrown when running an uber jar on a shared drive #40549

Closed
@madalinaandreeab

Description

@madalinaandreeab

Hi,

I recently upgraded from spring boot 3.1.7 to 3.2.5 and I am getting an IllegalArgumentException when I am using my service, which is stored as a jar on a shared drive.

I created a simple Eureka server app to demonstrate the issue: https://github.com/madalinaandreeab/eureka-server-demo

I placed the eureka-server-demo-0.0.1-SNAPSHOT.jar file in the \myshare\drive\users\mab\ shared drive and I started the service using the following command:
java -jar \\myshare\drive\users\mab\eureka-server-demo-0.0.1-SNAPSHOT.jar

The service starts successfully, but when I access the Eureka UI at http://localhost:8761/, I am getting the error below.

Please notice that the error refers to the C:\drive\users\mab\eureka-server-demo-0.0.1-SNAPSHOT.jar path which doesn't exist; The right path would be \\myshare\drive\users\mab\eureka-server-demo-0.0.1-SNAPSHOT.jar.

2024-04-26T17:48:41.756+03:00  INFO 25772 --- [           main] c.m.e.EurekaServerDemoApplication        : Started EurekaServerDemoApplication in 5.124 seconds (process running for 20.885)
2024-04-26T17:48:49.177+03:00  INFO 25772 --- [nio-8787-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
2024-04-26T17:48:49.178+03:00  INFO 25772 --- [nio-8787-exec-1] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
2024-04-26T17:48:49.179+03:00  INFO 25772 --- [nio-8787-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 1 ms
2024-04-26T17:48:49.297+03:00 ERROR 25772 --- [nio-8787-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.IllegalArgumentException: C:\drive\users\mab\eureka-server-demo-0.0.1-SNAPSHOT.jar must be a regular file] with root cause

java.lang.IllegalArgumentException: C:\drive\users\mab\eureka-server-demo-0.0.1-SNAPSHOT.jar must be a regular file
        at org.springframework.boot.loader.zip.FileDataBlock$FileAccess.<init>(FileDataBlock.java:180) ~[eureka-server-demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.zip.FileDataBlock.<init>(FileDataBlock.java:52) ~[eureka-server-demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.zip.ZipContent$Loader.loadNonNested(ZipContent.java:563) ~[eureka-server-demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.zip.ZipContent$Loader.load(ZipContent.java:549) ~[eureka-server-demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.zip.ZipContent.open(ZipContent.java:384) ~[eureka-server-demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.zip.ZipContent.open(ZipContent.java:361) ~[eureka-server-demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.zip.ZipContent$Loader.load(ZipContent.java:551) ~[eureka-server-demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.zip.ZipContent.open(ZipContent.java:384) ~[eureka-server-demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.zip.ZipContent.open(ZipContent.java:373) ~[eureka-server-demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.net.protocol.nested.NestedUrlConnectionResources.connect(NestedUrlConnectionResources.java:54) ~[eureka-server-demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.net.protocol.nested.NestedUrlConnection.connect(NestedUrlConnection.java:196) ~[eureka-server-demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at org.springframework.boot.loader.net.protocol.nested.NestedUrlConnection.getInputStream(NestedUrlConnection.java:187) ~[eureka-server-demo-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
        at freemarker.cache.URLTemplateSource.lastModified(URLTemplateSource.java:89) ~[freemarker-2.3.32.jar!/:2.3.32]
        at freemarker.cache.URLTemplateLoader.getLastModified(URLTemplateLoader.java:50) ~[freemarker-2.3.32.jar!/:2.3.32]
        at freemarker.cache.MultiTemplateLoader$MultiSource.getLastModified(MultiTemplateLoader.java:142) ~[freemarker-2.3.32.jar!/:2.3.32]
        at freemarker.cache.MultiTemplateLoader.getLastModified(MultiTemplateLoader.java:99) ~[freemarker-2.3.32.jar!/:2.3.32]
        at freemarker.cache.TemplateCache.getTemplateInternal(TemplateCache.java:439) ~[freemarker-2.3.32.jar!/:2.3.32]
        at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:293) ~[freemarker-2.3.32.jar!/:2.3.32]
        at freemarker.template.Configuration.getTemplate(Configuration.java:2910) ~[freemarker-2.3.32.jar!/:2.3.32]
        at freemarker.core.Environment.getTemplateForInclusion(Environment.java:3062) ~[freemarker-2.3.32.jar!/:2.3.32]
        at freemarker.core.Environment.getTemplateForInclusion(Environment.java:3024) ~[freemarker-2.3.32.jar!/:2.3.32]
        at freemarker.core.Environment.getTemplateForImporting(Environment.java:3186) ~[freemarker-2.3.32.jar!/:2.3.32]
        at freemarker.core.Environment.importLib(Environment.java:3171) ~[freemarker-2.3.32.jar!/:2.3.32]
        at freemarker.core.Environment.importLib(Environment.java:3135) ~[freemarker-2.3.32.jar!/:2.3.32]
        at freemarker.core.LibraryLoad.accept(LibraryLoad.java:65) ~[freemarker-2.3.32.jar!/:2.3.32]
        at freemarker.core.Environment.visit(Environment.java:335) ~[freemarker-2.3.32.jar!/:2.3.32]
        at freemarker.core.Environment.visit(Environment.java:341) ~[freemarker-2.3.32.jar!/:2.3.32]
        at freemarker.core.Environment.process(Environment.java:314) ~[freemarker-2.3.32.jar!/:2.3.32]
        at freemarker.template.Template.process(Template.java:383) ~[freemarker-2.3.32.jar!/:2.3.32]
        at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:332) ~[spring-webmvc-6.1.6.jar!/:6.1.6]
        at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:266) ~[spring-webmvc-6.1.6.jar!/:6.1.6]
        at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:220) ~[spring-webmvc-6.1.6.jar!/:6.1.6]
        at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:181) ~[spring-webmvc-6.1.6.jar!/:6.1.6]
        at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:314) ~[spring-webmvc-6.1.6.jar!/:6.1.6]
        at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1431) ~[spring-webmvc-6.1.6.jar!/:6.1.6]
        at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1167) ~[spring-webmvc-6.1.6.jar!/:6.1.6]
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1106) ~[spring-webmvc-6.1.6.jar!/:6.1.6]
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979) ~[spring-webmvc-6.1.6.jar!/:6.1.6]
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014) ~[spring-webmvc-6.1.6.jar!/:6.1.6]
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) ~[spring-webmvc-6.1.6.jar!/:6.1.6]
        at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) ~[spring-webmvc-6.1.6.jar!/:6.1.6]
        at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:206) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:150) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.20.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:175) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:150) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.6.jar!/:6.1.6]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.6.jar!/:6.1.6]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:175) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:150) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.6.jar!/:6.1.6]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.6.jar!/:6.1.6]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:175) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:150) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109) ~[spring-web-6.1.6.jar!/:6.1.6]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.6.jar!/:6.1.6]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:175) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:150) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.6.jar!/:6.1.6]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.6.jar!/:6.1.6]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:175) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:150) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1736) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.20.jar!/:na]
        at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na]

Thank you!

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