when upload themes zip package,update themes will throw exception For input string: "0-beta" in version 1.4.0-beta.1
Created by: yunajia
2020-07-27 17:42:33.730 DEBUG 2626 --- [qtp1035363280-13] run.halo.app.utils.VersionUtil : Comparing version [1.4.0-beta.1] with [1.3.0]
2020-07-27 17:42:33.731 INFO 2626 --- [qtp1035363280-13] run.halo.app.utils.FileUtils : Deleting [/tmp/halo8424452036089583356]
2020-07-27 17:42:33.836 INFO 2626 --- [qtp1035363280-13] run.halo.app.utils.FileUtils : Deleted [/tmp/halo8424452036089583356] successfully
2020-07-27 17:42:33.839 ERROR 2626 --- [qtp1035363280-13] r.h.app.core.ControllerExceptionHandler : Captured an exception:
java.lang.NumberFormatException: For input string: "0-beta"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_201]
at java.lang.Integer.parseInt(Integer.java:580) ~[na:1.8.0_201]
at java.lang.Integer.parseInt(Integer.java:615) ~[na:1.8.0_201]
at run.halo.app.utils.VersionUtil.getCanonicalVersion(VersionUtil.java:55) ~[classes!/:1.4.0-beta.1]
at run.halo.app.utils.VersionUtil.compare(VersionUtil.java:72) ~[classes!/:1.4.0-beta.1]
at run.halo.app.utils.VersionUtil.compareVersion(VersionUtil.java:101) ~[classes!/:1.4.0-beta.1]
at run.halo.app.service.impl.ThemeServiceImpl.add(ThemeServiceImpl.java:463) ~[classes!/:1.4.0-beta.1]
at run.halo.app.service.impl.ThemeServiceImpl.upload(ThemeServiceImpl.java:428) ~[classes!/:1.4.0-beta.1]
at run.halo.app.controller.admin.api.ThemeController.uploadTheme(ThemeController.java:162) ~[classes!/:1.4.0-beta.1]
at run.halo.app.controller.admin.api.ThemeController$$FastClassBySpringCGLIB$$e8e9d45c.invoke(<generated>) ~[classes!/:1.4.0-beta.1]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771) ~[spring-aop-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) ~[spring-aop-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88) ~[spring-aop-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at run.halo.app.core.ControllerLogAop.controller(ControllerLogAop.java:48) ~[classes!/:1.4.0-beta.1]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_201]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_201]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_201]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_201]
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644) ~[spring-aop-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633) ~[spring-aop-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70) ~[spring-aop-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) ~[spring-aop-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95) ~[spring-aop-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) ~[spring-aop-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691) ~[spring-aop-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at run.halo.app.controller.admin.api.ThemeController$$EnhancerBySpringCGLIB$$200aaf93.uploadTheme(<generated>) ~[classes!/:1.4.0-beta.1]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_201]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_201]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_201]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_201]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) ~[spring-web-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) ~[spring-web-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105) ~[spring-webmvc-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:879) ~[spring-webmvc-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793) ~[spring-webmvc-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) ~[spring-webmvc-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) ~[spring-webmvc-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) [spring-webmvc-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) [spring-webmvc-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:523) [jakarta.servlet-api-4.0.3.jar!/:4.0.3]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) [spring-webmvc-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:590) [jakarta.servlet-api-4.0.3.jar!/:4.0.3]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:763) [jetty-servlet-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1631) [jetty-servlet-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226) [websocket-server-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1618) [jetty-servlet-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at run.halo.app.security.filter.AdminAuthenticationFilter.doAuthenticate(AdminAuthenticationFilter.java:116) [classes!/:1.4.0-beta.1]
at run.halo.app.security.filter.AbstractAuthenticationFilter.doFilterInternal(AbstractAuthenticationFilter.java:191) [classes!/:1.4.0-beta.1]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1618) [jetty-servlet-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103) [spring-web-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1618) [jetty-servlet-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:103) [spring-web-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1618) [jetty-servlet-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at run.halo.app.filter.CorsFilter.doFilter(CorsFilter.java:49) [classes!/:1.4.0-beta.1]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1618) [jetty-servlet-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at run.halo.app.filter.LogFilter.doFilterInternal(LogFilter.java:38) [classes!/:1.4.0-beta.1]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1618) [jetty-servlet-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:93) [spring-boot-actuator-2.3.1.RELEASE.jar!/:2.3.1.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1618) [jetty-servlet-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) [spring-web-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [spring-web-5.2.7.RELEASE.jar!/:5.2.7.RELEASE]
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1618) [jetty-servlet-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:549) [jetty-servlet-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [jetty-server-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:602) [jetty-security-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) [jetty-server-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) [jetty-server-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1610) [jetty-server-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) [jetty-server-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1369) [jetty-server-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) [jetty-server-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:489) [jetty-servlet-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1580) [jetty-server-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) [jetty-server-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1284) [jetty-server-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [jetty-server-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) [jetty-server-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.server.Server.handle(Server.java:501) [jetty-server-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383) [jetty-server-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556) [jetty-server-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375) [jetty-server-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273) ~[jetty-server-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) ~[jetty-io-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) ~[jetty-io-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104) ~[jetty-io-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) ~[jetty-util-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) ~[jetty-util-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) ~[jetty-util-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) ~[jetty-util-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375) ~[jetty-util-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806) ~[jetty-util-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938) ~[jetty-util-9.4.29.v20200521.jar!/:9.4.29.v20200521]
at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_201]