Hello! I'm working on that. If you check the latest 5.8.7 snapshots, you'll see the problem is already gone. I just need a bit of polishing in the code here and there to get it to a point it's releasable.
Cheers! On Tue, Jul 2, 2024 at 4:38 AM Christian Köberl <christian.koeb...@gmail.com> wrote: > We are just trying to upgrade one of our biggest and most complex > application to Java 21/Jakarta EE. > > First, I wanted to ask when we will release the Jakarta EE version of > Tapestry - any plans for this? > > Second, we found a real hard to pin bug in the changes to Tapestry 5.8.3 - > we think it is connected to this commit: TAP5-2742: smarter page cache > invalidation · apache/tapestry-5@48938d9 (github.com) > < > https://github.com/apache/tapestry-5/commit/48938d9a64239df37cbb7e2ad3c39ba196d1345e > > > > When we launch the app with 5.8.3 we get the following error (with 5.8.2 > everything works fine). We cannot reproduce the issue in a non-complex > scenario. Any ideas? > (could be similar to the issues mentioned by Chris Poulsen on the user's > mailing list) > > Failure creating embedded component 'infoDialog' of > myapp.components.pagelayouts.FullContentPageLayout: > java.lang.ClassNotFoundException: java.lang.Object[] [at > classpath:myapp/pagelayouts/BasePageLayout.tml, line 93] > at > > org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.createEmbeddedAssembler(ComponentAssemblerImpl.java:333) > at > > org.apache.tapestry5.internal.pageload.PageLoaderImpl.startComponent(PageLoaderImpl.java:819) > at > > org.apache.tapestry5.internal.pageload.PageLoaderImpl.component(PageLoaderImpl.java:695) > at > > org.apache.tapestry5.internal.pageload.PageLoaderImpl.processTemplateToken(PageLoaderImpl.java:518) > at > > org.apache.tapestry5.internal.pageload.PageLoaderImpl.element(PageLoaderImpl.java:753) > at > > org.apache.tapestry5.internal.pageload.PageLoaderImpl.processTemplateToken(PageLoaderImpl.java:513) > at > > org.apache.tapestry5.internal.pageload.PageLoaderImpl.element(PageLoaderImpl.java:753) > at > > org.apache.tapestry5.internal.pageload.PageLoaderImpl.processTemplateToken(PageLoaderImpl.java:513) > at > > org.apache.tapestry5.internal.pageload.PageLoaderImpl.programAssembler(PageLoaderImpl.java:354) > at > > org.apache.tapestry5.internal.pageload.PageLoaderImpl.access$1100(PageLoaderImpl.java:96) > at > > org.apache.tapestry5.internal.pageload.PageLoaderImpl$4.invoke(PageLoaderImpl.java:326) > at > > org.apache.tapestry5.internal.pageload.PageLoaderImpl$4.invoke(PageLoaderImpl.java:309) > at > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:82) > at > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:72) > at > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1292) > at > > org.apache.tapestry5.internal.pageload.PageLoaderImpl.createAssembler(PageLoaderImpl.java:308) > at > > org.apache.tapestry5.internal.pageload.PageLoaderImpl.getAssembler(PageLoaderImpl.java:298) > at > > org.apache.tapestry5.internal.pageload.PageLoaderImpl$12.execute(PageLoaderImpl.java:1017) > at > > org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.runActions(ComponentAssemblerImpl.java:229) > at > > org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.performAssembleRootComponent(ComponentAssemblerImpl.java:105) > at > > org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.access$000(ComponentAssemblerImpl.java:37) > at > > org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl$1.invoke(ComponentAssemblerImpl.java:81) > at > > org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl$1.invoke(ComponentAssemblerImpl.java:78) > at > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:82) > at > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:72) > at > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1292) > at > > org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.assembleRootComponent(ComponentAssemblerImpl.java:76) > at > > org.apache.tapestry5.internal.pageload.PageLoaderImpl$3.invoke(PageLoaderImpl.java:255) > at > > org.apache.tapestry5.internal.pageload.PageLoaderImpl$3.invoke(PageLoaderImpl.java:248) > at > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:82) > at > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:72) > at > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1292) > at > > org.apache.tapestry5.internal.pageload.PageLoaderImpl.loadPage(PageLoaderImpl.java:247) > at $PageLoader_64f66f20aa35.loadPage(Unknown Source) > at > > org.apache.tapestry5.internal.services.PageSourceImpl.getPage(PageSourceImpl.java:199) > at > > org.apache.tapestry5.internal.services.PageSourceImpl.getPage(PageSourceImpl.java:140) > at $PageSource_64f66f20aa34.getPage(Unknown Source) > at > > org.apache.tapestry5.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:93) > at $RequestPageCache_64f66f20aa33.get(Unknown Source) > at $RequestPageCache_64f66f20aa32.get(Unknown Source) > at > > org.apache.tapestry5.internal.services.ComponentSourceImpl.getPage(ComponentSourceImpl.java:83) > at $ComponentSource_64f66f20aa2e.getPage(Unknown Source) > at > > org.apache.tapestry5.internal.pageload.PagePreloaderImpl$1.run(PagePreloaderImpl.java:81) > at > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:56) > at > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:60) > at > org.apache.tapestry5.ioc.internal.RegistryImpl.run(RegistryImpl.java:1286) > at > > org.apache.tapestry5.internal.pageload.PagePreloaderImpl.preloadPages(PagePreloaderImpl.java:76) > at $PagePreloader_64f66f20aa2d.preloadPages(Unknown Source) > at > > org.apache.tapestry5.modules.PageLoadModule.preloadPages(PageLoadModule.java:86) > at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > at > > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.base/java.lang.reflect.Method.invoke(Method.java:566) > at > > org.apache.tapestry5.ioc.internal.StartupDefImpl$1.run(StartupDefImpl.java:70) > at > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:56) > at > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:60) > at > org.apache.tapestry5.ioc.internal.RegistryImpl.run(RegistryImpl.java:1286) > at > > org.apache.tapestry5.ioc.internal.StartupDefImpl.invoke(StartupDefImpl.java:48) > at > org.apache.tapestry5.ioc.internal.RegistryImpl$2.run(RegistryImpl.java:262) > at > > org.apache.tapestry5.ioc.internal.RegistryImpl.performRegistryStartup(RegistryImpl.java:388) > at > > org.apache.tapestry5.ioc.internal.RegistryWrapper.performRegistryStartup(RegistryWrapper.java:89) > at org.apache.tapestry5.http.TapestryFilter.init(TapestryFilter.java:121) > at > > org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:272) > at > > org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:253) > at > > org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:102) > at > > org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4613) > at > > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256) > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183) > at > > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726) > at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:698) > at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:696) > at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1783) > at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > at > > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.base/java.lang.reflect.Method.invoke(Method.java:566) > at > > org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:293) > at > > java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:809) > at > > java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) > at > > org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:460) > at > > org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:408) > at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > at > > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.base/java.lang.reflect.Method.invoke(Method.java:566) > at > > org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:293) > at > > java.management/com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:809) > at > > java.management/com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) > at > > java.management/com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:468) > at > > java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1466) > at > > java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1307) > at java.base/java.security.AccessController.doPrivileged(Native Method) > at > > java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1406) > at > > java.management.rmi/javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:827) > at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > at > > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.base/java.lang.reflect.Method.invoke(Method.java:566) > at > > java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359) > at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200) > at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197) > at java.base/java.security.AccessController.doPrivileged(Native Method) > at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196) > at > > java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562) > at > > java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796) > at > > java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677) > at java.base/java.security.AccessController.doPrivileged(Native Method) > at > > java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676) > at > > java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) > at > > java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) > at java.base/java.lang.Thread.run(Thread.java:829) > Caused by: org.apache.tapestry5.ioc.internal.OperationException: > java.lang.ClassNotFoundException: java.lang.Object[] > at > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.logAndRethrow(OperationTrackerImpl.java:196) > at > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:62) > at > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.run(PerThreadOperationTracker.java:60) > at > org.apache.tapestry5.ioc.internal.RegistryImpl.run(RegistryImpl.java:1286) > at > > org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.transform(ComponentInstantiatorSourceImpl.java:446) > at > > org.apache.tapestry5.internal.plastic.PlasticClassPool.loadAndTransformClass(PlasticClassPool.java:401) > at > > org.apache.tapestry5.internal.plastic.PlasticClassLoader.loadClass(PlasticClassLoader.java:59) > at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) > at > > org.apache.tapestry5.internal.plastic.PlasticClassPool.createTransformation(PlasticClassPool.java:511) > at > > org.apache.tapestry5.internal.plastic.PlasticClassPool.getPlasticClassTransformation(PlasticClassPool.java:492) > at > > org.apache.tapestry5.internal.plastic.PlasticClassPool.loadAndTransformClass(PlasticClassPool.java:399) > at > > org.apache.tapestry5.internal.plastic.PlasticClassLoader.loadClass(PlasticClassLoader.java:59) > at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) > at > > org.apache.tapestry5.internal.plastic.PlasticClassPool.getClassInstantiator(PlasticClassPool.java:667) > at > > org.apache.tapestry5.plastic.PlasticManager.getClassInstantiator(PlasticManager.java:187) > at > > org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$2.invoke(ComponentInstantiatorSourceImpl.java:402) > at > > org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$2.invoke(ComponentInstantiatorSourceImpl.java:369) > at > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.invoke(OperationTrackerImpl.java:82) > at > > org.apache.tapestry5.ioc.internal.PerThreadOperationTracker.invoke(PerThreadOperationTracker.java:72) > at > > org.apache.tapestry5.ioc.internal.RegistryImpl.invoke(RegistryImpl.java:1292) > at > > org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.createInstantiatorForClass(ComponentInstantiatorSourceImpl.java:367) > at > > java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705) > at > > org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl.getInstantiator(ComponentInstantiatorSourceImpl.java:359) > at $ComponentInstantiatorSource_64f66f20aa23.getInstantiator(Unknown > Source) > at > > org.apache.tapestry5.internal.pageload.EmbeddedComponentAssemblerImpl.getModel(EmbeddedComponentAssemblerImpl.java:198) > at > > org.apache.tapestry5.internal.pageload.EmbeddedComponentAssemblerImpl.<init>(EmbeddedComponentAssemblerImpl.java:92) > at > > org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.createEmbeddedAssembler(ComponentAssemblerImpl.java:297) > ... 110 more > Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: > java.lang.Object[] > at > > org.apache.tapestry5.services.pageload.PageClassLoaderContextManagerImpl.loadClass(PageClassLoaderContextManagerImpl.java:360) > at > > org.apache.tapestry5.services.pageload.PageClassLoaderContextManagerImpl.get(PageClassLoaderContextManagerImpl.java:150) > at $PageClassLoaderContextManager_64f66f20aa27.get(Unknown Source) > at > > org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$PlasticProxyFactoryProxy.getProxyFactory(ComponentInstantiatorSourceImpl.java:808) > at $PlasticProxyFactory_64f66f20aa77.getProxyFactory(Unknown Source) > at $PlasticProxyFactory_64f66f20aa2b.getProxyFactory(Unknown Source) > at > > org.apache.tapestry5.internal.services.ComponentClassCacheImpl.lookupClassForType(ComponentClassCacheImpl.java:108) > at > > org.apache.tapestry5.internal.services.ComponentClassCacheImpl.forName(ComponentClassCacheImpl.java:98) > at > > org.apache.tapestry5.internal.services.ComponentClassCacheImpl.defaultValueForType(ComponentClassCacheImpl.java:82) > at $ComponentClassCache_64f66f20aa6b.defaultValueForType(Unknown Source) > at > > org.apache.tapestry5.internal.transform.PersistWorker.determineDefaultValueFromFieldType(PersistWorker.java:112) > at > > org.apache.tapestry5.internal.transform.PersistWorker.makeFieldPersistent(PersistWorker.java:96) > at > > org.apache.tapestry5.internal.transform.PersistWorker.transform(PersistWorker.java:84) > at $ComponentClassTransformWorker2_64f66f20aa73.transform(Unknown Source) > at $ComponentClassTransformWorker2_64f66f20aa26.transform(Unknown Source) > at > > org.apache.tapestry5.internal.services.ComponentInstantiatorSourceImpl$3.run(ComponentInstantiatorSourceImpl.java:496) > at > > org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:56) > ... 135 more > Caused by: java.lang.ClassNotFoundException: java.lang.Object[] > at java.base/java.lang.ClassLoader.findClass(ClassLoader.java:719) > at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:589) > at > > org.apache.tapestry5.internal.plastic.PlasticClassLoader.loadClass(PlasticClassLoader.java:77) > at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) > at > > org.apache.tapestry5.services.pageload.PageClassLoaderContextManagerImpl.loadClass(PageClassLoaderContextManagerImpl.java:358) > ... 151 more > > Thx, > Christian > -- Thiago H. de Paula Figueiredo