[ https://issues.apache.org/jira/browse/TAP5-2605?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ben Weidig reassigned TAP5-2605: -------------------------------- Assignee: Ben Weidig > JS minimizer regression bug in 5.5.0-beta-1 > ------------------------------------------- > > Key: TAP5-2605 > URL: https://issues.apache.org/jira/browse/TAP5-2605 > Project: Tapestry 5 > Issue Type: Bug > Components: tapestry-webresources > Affects Versions: 5.5.0 > Reporter: Balázs Palcsó > Assignee: Ben Weidig > Priority: Major > Labels: regression > Attachments: clipboard-polyfill.promise.js > > > After upgrading from 5.4.4 to 5.5.0-beta-1 I am getting the following error > for the attached [^clipboard-polyfill.promise.js] > > {code:java} > 20190105 22:07:58.126 [http-nio-8080-exec-5] ERROR > org.apache.tapestry5.ioc.Registry - Illegal char <<> at index 18: > StreamableResource<text/javascript > classpath:META-INF/assets/js/3rd-party/clipboard-polyfill.promise.js > COMPRESSABLE lastModified: Sat Jan 05 22:07:25 CET 2019 size: 24061> > 20190105 22:07:58.126 [http-nio-8080-exec-5] ERROR > org.apache.tapestry5.ioc.Registry - Operations trace: > 20190105 22:07:58.126 [http-nio-8080-exec-5] ERROR > org.apache.tapestry5.ioc.Registry - [ 1] Streaming compressed module clipboard > 20190105 22:07:58.126 [http-nio-8080-exec-5] ERROR > org.apache.tapestry5.ioc.Registry - [ 2] Streaming > classpath:META-INF/assets/js/3rd-party/clipboard-polyfill.promise.js > (compressed) > 20190105 22:07:58.126 [http-nio-8080-exec-5] ERROR > org.apache.tapestry5.ioc.Registry - [ 3] Minimizing > StreamableResource<text/javascript > classpath:META-INF/assets/js/3rd-party/clipboard-polyfill.promise.js > COMPRESSABLE lastModified: Sat Jan 05 22:07:25 CET 2019 size: 24061> > 20190105 22:07:58.246 [http-nio-8080-exec-5] ERROR > o.a.t.m.T.RequestExceptionHandler - Processing of request failed with > uncaught exception: {} > org.apache.tapestry5.ioc.internal.OperationException: Illegal char <<> at > index 18: StreamableResource<text/javascript > classpath:META-INF/assets/js/3rd-party/clipboard-polyfill.promise.js > COMPRESSABLE lastModified: Sat Jan 05 22:07:25 CET 2019 size: 24061> > at > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:186) > at > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.perform(OperationTrackerImpl.java:118) > at > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.perform(PerThreadOperationTracker.java:84) > at > org.apache.tapestry5.ioc.internal.RegistryImpl.perform(RegistryImpl.java:1266) > at > org.apache.tapestry5.internal.webresources.AbstractMinimizer.minimize(AbstractMinimizer.java:67) > at > org.apache.tapestry5.internal.services.assets.MasterResourceMinimizer.minimize(MasterResourceMinimizer.java:42) > at $ResourceMinimizer_2469ff1505ff6.minimize(Unknown Source) > at > org.apache.tapestry5.internal.services.assets.SRSMinimizingInterceptor.getStreamableResource(SRSMinimizingInterceptor.java:42) > at > org.apache.tapestry5.internal.services.assets.JavaScriptStackMinimizeDisabler.getStreamableResource(JavaScriptStackMinimizeDisabler.java:61) > at > org.apache.tapestry5.internal.services.assets.UTF8ForTextAssets.getStreamableResource(UTF8ForTextAssets.java:40) > at > org.apache.tapestry5.internal.services.assets.SRSCachingInterceptor.getStreamableResource(SRSCachingInterceptor.java:55) > at > org.apache.tapestry5.internal.services.assets.SRSCompressingInterceptor.getStreamableResource(SRSCompressingInterceptor.java:38) > at > org.apache.tapestry5.internal.services.assets.SRSCachingInterceptor.getStreamableResource(SRSCachingInterceptor.java:55) > at $StreamableResourceSource_2469ff1505e6a.getStreamableResource(Unknown > Source) > at > org.apache.tapestry5.internal.services.ResourceStreamerImpl$1.perform(ResourceStreamerImpl.java:114) > at > org.apache.tapestry5.internal.services.ResourceStreamerImpl$1.perform(ResourceStreamerImpl.java:107) > at > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.perform(OperationTrackerImpl.java:110) > at > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.perform(PerThreadOperationTracker.java:84) > at > org.apache.tapestry5.ioc.internal.RegistryImpl.perform(RegistryImpl.java:1266) > at > org.apache.tapestry5.internal.services.ResourceStreamerImpl.streamResource(ResourceStreamerImpl.java:106) > at $ResourceStreamer_2469ff1505e97.streamResource(Unknown Source) > at > org.apache.tapestry5.internal.services.javascript.ModuleDispatcher$1.perform(ModuleDispatcher.java:167) > at > org.apache.tapestry5.internal.services.javascript.ModuleDispatcher$1.perform(ModuleDispatcher.java:158) > at > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.perform(OperationTrackerImpl.java:110) > at > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.perform(PerThreadOperationTracker.java:84) > at > org.apache.tapestry5.ioc.internal.RegistryImpl.perform(RegistryImpl.java:1266) > at > org.apache.tapestry5.internal.services.javascript.ModuleDispatcher.handleModuleRequest(ModuleDispatcher.java:155) > at > org.apache.tapestry5.internal.services.javascript.ModuleDispatcher.dispatch(ModuleDispatcher.java:105) > at $Dispatcher_2469ff1505e9d.dispatch(Unknown Source) > at $Dispatcher_2469ff1505e93.dispatch(Unknown Source) > at > org.apache.tapestry5.modules.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:305) > at > org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) > at $RequestHandler_2469ff1505e94.service(Unknown Source) > at > org.apache.tapestry5.modules.TapestryModule$3.service(TapestryModule.java:846) > at $RequestHandler_2469ff1505e94.service(Unknown Source) > at > org.apache.tapestry5.modules.TapestryModule$2.service(TapestryModule.java:836) > at $RequestHandler_2469ff1505e94.service(Unknown Source) > at > org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:89) > at $RequestHandler_2469ff1505e94.service(Unknown Source) > at $RequestHandler_2469ff1505e7e.service(Unknown Source) > at > org.apache.tapestry5.modules.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:256) > at > org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:45) > at $HttpServletRequestHandler_2469ff1505e80.service(Unknown Source) > at org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:59) > at $HttpServletRequestHandler_2469ff1505e80.service(Unknown Source) > at > org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:69) > at $HttpServletRequestFilter_2469ff1505e7a.service(Unknown Source) > at $HttpServletRequestHandler_2469ff1505e80.service(Unknown Source) > at > org.tynamo.security.services.impl.SecurityConfiguration.service(SecurityConfiguration.java:72) > at $HttpServletRequestFilter_2469ff1505e7d.service(Unknown Source) > at $HttpServletRequestHandler_2469ff1505e80.service(Unknown Source) > at > org.apache.tapestry5.modules.TapestryModule$1.service(TapestryModule.java:796) > at $HttpServletRequestHandler_2469ff1505e80.service(Unknown Source) > at $HttpServletRequestHandler_2469ff1505e79.service(Unknown Source) > at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:166) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) > at > org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) > at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800) > at > org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) > at > org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806) > at > org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498) > at > org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > at > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > at java.lang.Thread.run(Thread.java:748) > Caused by: java.nio.file.InvalidPathException: Illegal char <<> at index 18: > StreamableResource<text/javascript > classpath:META-INF/assets/js/3rd-party/clipboard-polyfill.promise.js > COMPRESSABLE lastModified: Sat Jan 05 22:07:25 CET 2019 size: 24061> > at sun.nio.fs.WindowsPathParser.normalize(WindowsPathParser.java:182) > at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:153) > at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77) > at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94) > at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255) > at > com.google.javascript.jscomp.SourceMapResolver.getRelativePath(SourceMapResolver.java:102) > at > com.google.javascript.jscomp.SourceMapResolver.extractSourceMap(SourceMapResolver.java:63) > at com.google.javascript.jscomp.JsAst.parse(JsAst.java:169) > at com.google.javascript.jscomp.JsAst.getAstRoot(JsAst.java:56) > at > com.google.javascript.jscomp.CompilerInput.getAstRoot(CompilerInput.java:133) > at com.google.javascript.jscomp.Compiler.hoistIfExtern(Compiler.java:1979) > at com.google.javascript.jscomp.Compiler.hoistExterns(Compiler.java:1965) > at com.google.javascript.jscomp.Compiler.orderInputs(Compiler.java:1819) > at com.google.javascript.jscomp.Compiler.parseInputs(Compiler.java:1751) > at > com.google.javascript.jscomp.Compiler.parseForCompilationInternal(Compiler.java:965) > at > com.google.javascript.jscomp.Compiler.lambda$parseForCompilation$4(Compiler.java:948) > at > com.google.javascript.jscomp.CompilerExecutor.runInCompilerThread(CompilerExecutor.java:129) > at > com.google.javascript.jscomp.Compiler.runInCompilerThread(Compiler.java:856) > at > com.google.javascript.jscomp.Compiler.parseForCompilation(Compiler.java:946) > at com.google.javascript.jscomp.Compiler.compile(Compiler.java:715) > at > org.apache.tapestry5.internal.webresources.GoogleClosureMinimizer.doMinimize(GoogleClosureMinimizer.java:92) > at > org.apache.tapestry5.internal.webresources.AbstractMinimizer$1.perform(AbstractMinimizer.java:72) > at > org.apache.tapestry5.internal.webresources.AbstractMinimizer$1.perform(AbstractMinimizer.java:68) > at > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.perform(OperationTrackerImpl.java:110) > ... 72 common frames omitted{code} > This is how the JS file is added in the AppModule Java class: > {code:java} > @Contribute(ModuleManager.class) > public static void contributeModuleManager(final > MappedConfiguration<String, Object> configuration, > > @Path("classpath:META-INF/assets/js/3rd-party/clipboard-polyfill.promise.js") > final Resource clipboard) { > configuration.add("clipboard", new > JavaScriptModuleConfiguration(clipboard)); > } > {code} > This only happens when -Dtapestry.production-mode=true -- This message was sent by Atlassian Jira (v8.20.10#820010)