[ 
https://issues.apache.org/jira/browse/TAP5-2813?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18036507#comment-18036507
 ] 

ASF subversion and git services commented on TAP5-2813:
-------------------------------------------------------

Commit c2f56b49e21875eae1f0d2e5ec25d43e05cb5c3a in tapestry-5's branch 
refs/heads/javax from Thiago H. de Paula Figueiredo
[ https://gitbox.apache.org/repos/asf?p=tapestry-5.git;h=c2f56b49e ]

TAP5-2813: Hopefully last workaround

> NPE when @Cached applied to method returning a generic type in multiple 
> classloader mode
> ----------------------------------------------------------------------------------------
>
>                 Key: TAP5-2813
>                 URL: https://issues.apache.org/jira/browse/TAP5-2813
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.9.0
>            Reporter: Thiago Henrique De Paula Figueiredo
>            Assignee: Thiago Henrique De Paula Figueiredo
>            Priority: Minor
>             Fix For: 5.10.0
>
>
> With production mode on, methods annotated with @Cached and returning a 
> generic type, for example {{@Cached public SomeType<T> getData()}} , would 
> throw this error:
> {noformat}
> java.lang.RuntimeException: Exception assembling root component of page 
> CachedGenericsDemo: Exception assembling embedded component 'cachedgenerics' 
> (of type org.apache.tapestry5.integration.app1.components.CachedGenerics, 
> within CachedGenericsDemo): Could not convert 'EmptyTable' into a component 
> parameter binding: Exception generating conduit for expression 'EmptyTable': 
> java.lang.NullPointerException
>       at 
> org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.performAssembleRootComponent(ComponentAssemblerImpl.java:129)
>       at 
> org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.access$0(ComponentAssemblerImpl.java:86)
>       at 
> org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl$1.invoke(ComponentAssemblerImpl.java:81)
>       at 
> org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl$1.invoke(ComponentAssemblerImpl.java:1)
>       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:1)
>       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_2909eea08d1.loadPage(Unknown Source)
>       at 
> org.apache.tapestry5.internal.services.PageSourceImpl.getPage(PageSourceImpl.java:219)
>       at 
> org.apache.tapestry5.internal.services.PageSourceImpl.getPage(PageSourceImpl.java:147)
>       at $PageSource_2909eea08d0.getPage(Unknown Source)
>       at $PageSource_2909eea08cf.getPage(Unknown Source)
>       at 
> org.apache.tapestry5.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:93)
>       at $RequestPageCache_2909eea08ce.get(Unknown Source)
>       at $RequestPageCache_2909eea08cd.get(Unknown Source)
>       at 
> org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:61)
>       at 
> org.apache.tapestry5.modules.TapestryModule$33.handle(TapestryModule.java:2055)
>       at $PageRenderRequestHandler_2909eea0aa5.handle(Unknown Source)
>       at $PageRenderRequestHandler_2909eea0aa0.handle(Unknown Source)
>       at 
> org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.lambda$1(ComponentRequestHandlerTerminator.java:74)
>       at 
> org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.run(ComponentRequestHandlerTerminator.java:93)
>       at 
> org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:74)
>       at 
> org.apache.tapestry5.internal.services.DeferredResponseRenderer.handlePageRender(DeferredResponseRenderer.java:57)
>       at $ComponentRequestFilter_2909eea0a9e.handlePageRender(Unknown Source)
>       at $ComponentRequestHandler_2909eea0aa1.handlePageRender(Unknown Source)
>       at 
> org.apache.tapestry5.services.InitializeActivePageName.handlePageRender(InitializeActivePageName.java:49)
>       at $ComponentRequestFilter_2909eea0a9d.handlePageRender(Unknown Source)
>       at $ComponentRequestHandler_2909eea0aa1.handlePageRender(Unknown Source)
>       at 
> org.apache.tapestry5.internal.services.RequestOperationTracker$2.run(RequestOperationTracker.java:78)
>       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.services.RequestOperationTracker.handlePageRender(RequestOperationTracker.java:71)
>       at $ComponentRequestFilter_2909eea0a9c.handlePageRender(Unknown Source)
>       at $ComponentRequestHandler_2909eea0aa1.handlePageRender(Unknown Source)
>       at $ComponentRequestHandler_2909eea0a5d.handlePageRender(Unknown Source)
>       at 
> org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:61)
>       at $Dispatcher_2909eea0a5b.dispatch(Unknown Source)
>       at $Dispatcher_2909eea0a5c.dispatch(Unknown Source)
>       at $Dispatcher_2909eea0a46.dispatch(Unknown Source)
>       at 
> org.apache.tapestry5.http.modules.TapestryHttpModule$RequestHandlerTerminator.service(TapestryHttpModule.java:492)
>       at 
> org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:31)
>       at $RequestFilter_2909eea0a45.service(Unknown Source)
>       at $RequestHandler_2909eea0a47.service(Unknown Source)
>       at 
> org.apache.tapestry5.modules.TapestryModule$2.service(TapestryModule.java:995)
>       at $RequestHandler_2909eea0a47.service(Unknown Source)
>       at 
> org.apache.tapestry5.modules.TapestryModule$1.service(TapestryModule.java:985)
>       at $RequestHandler_2909eea0a47.service(Unknown Source)
>       at 
> org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:89)
>       at $RequestHandler_2909eea0a47.service(Unknown Source)
>       at 
> org.apache.tapestry5.integration.app1.services.AppModule$2.service(AppModule.java:144)
>       at $RequestFilter_2909eea0a42.service(Unknown Source)
>       at $RequestHandler_2909eea0a47.service(Unknown Source)
>       at 
> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:110)
>       at 
> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:1)
>       at 
> org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:83)
>       at 
> org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:124)
>       at $RequestFilter_2909eea0a44.service(Unknown Source)
>       at $RequestHandler_2909eea0a47.service(Unknown Source)
>       at $RequestHandler_2909eea0a39.service(Unknown Source)
>       at 
> org.apache.tapestry5.http.modules.TapestryHttpModule$HttpServletRequestHandlerTerminator.service(TapestryHttpModule.java:469)
>       at 
> org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:69)
>       at $HttpServletRequestFilter_2909eea0a41.service(Unknown Source)
>       at $HttpServletRequestFilter_2909eea0a38.service(Unknown Source)
>       at $HttpServletRequestHandler_2909eea0a3b.service(Unknown Source)
>       at 
> org.apache.tapestry5.http.internal.gzip.GZipFilter.service(GZipFilter.java:60)
>       at $HttpServletRequestHandler_2909eea0a3b.service(Unknown Source)
>       at 
> org.apache.tapestry5.http.services.CorsHttpServletRequestFilter.service(CorsHttpServletRequestFilter.java:65)
>       at $HttpServletRequestHandler_2909eea0a3b.service(Unknown Source)
>       at 
> org.apache.tapestry5.http.modules.TapestryHttpModule$2.service(TapestryHttpModule.java:318)
>       at $HttpServletRequestHandler_2909eea0a3b.service(Unknown Source)
>       at $HttpServletRequestHandler_2909eea0a33.service(Unknown Source)
>       at 
> org.apache.tapestry5.http.TapestryFilter.runFilter(TapestryFilter.java:178)
>       at 
> org.apache.tapestry5.http.TapestryFilter.doFilter(TapestryFilter.java:225)
>       at 
> org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:202)
>       at 
> org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1635)
>       at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:527)
>       at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:131)
>       at 
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:578)
>       at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
>       at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:223)
>       at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1570)
>       at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:221)
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1381)
>       at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:176)
>       at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:484)
>       at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1543)
>       at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:174)
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1303)
>       at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:129)
>       at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:122)
>       at org.eclipse.jetty.server.Server.handle(Server.java:563)
>       at 
> org.eclipse.jetty.server.HttpChannel$RequestDispatchable.dispatch(HttpChannel.java:1598)
>       at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:753)
>       at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:501)
>       at 
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:282)
>       at 
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:314)
>       at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:100)
>       at 
> org.eclipse.jetty.io.SelectableChannelEndPoint$1.run(SelectableChannelEndPoint.java:53)
>       at 
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.runTask(AdaptiveExecutionStrategy.java:421)
>       at 
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.consumeTask(AdaptiveExecutionStrategy.java:390)
>       at 
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.tryProduce(AdaptiveExecutionStrategy.java:277)
>       at 
> org.eclipse.jetty.util.thread.strategy.AdaptiveExecutionStrategy.run(AdaptiveExecutionStrategy.java:199)
>       at 
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:411)
>       at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:969)
>       at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.doRunJob(QueuedThreadPool.java:1194)
>       at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1149)
>       at java.base/java.lang.Thread.run(Thread.java:829)
> Caused by: org.apache.tapestry5.ioc.internal.OperationException: Exception 
> assembling embedded component 'cachedgenerics' (of type 
> org.apache.tapestry5.integration.app1.components.CachedGenerics, within 
> CachedGenericsDemo): Could not convert 'EmptyTable' into a component 
> parameter binding: Exception generating conduit for expression 'EmptyTable': 
> java.lang.NullPointerException [at context:CachedGenericsDemo.tml, line 2]
>       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.pageload.ComponentAssemblerImpl.assembleEmbeddedComponent(ComponentAssemblerImpl.java:158)
>       at 
> org.apache.tapestry5.internal.pageload.PageLoaderImpl$12.execute(PageLoaderImpl.java:1021)
>       at 
> org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.runActions(ComponentAssemblerImpl.java:229)
>       at 
> org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.performAssembleRootComponent(ComponentAssemblerImpl.java:105)
>       ... 114 more
> Caused by: org.apache.tapestry5.commons.internal.util.TapestryException: 
> Exception assembling embedded component 'cachedgenerics' (of type 
> org.apache.tapestry5.integration.app1.components.CachedGenerics, within 
> CachedGenericsDemo): Could not convert 'EmptyTable' into a component 
> parameter binding: Exception generating conduit for expression 'EmptyTable': 
> java.lang.NullPointerException [at context:CachedGenericsDemo.tml, line 2]
>       at 
> org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl$2.run(ComponentAssemblerImpl.java:187)
>       at 
> org.apache.tapestry5.ioc.internal.OperationTrackerImpl.run(OperationTrackerImpl.java:56)
>       ... 120 more
> Caused by: org.apache.tapestry5.commons.internal.util.TapestryException: 
> Could not convert 'EmptyTable' into a component parameter binding: Exception 
> generating conduit for expression 'EmptyTable': 
> java.lang.NullPointerException [at 
> classpath:org/apache/tapestry5/integration/app1/base/AbstractCachedGenerics.tml,
>  line 4]
>       at 
> org.apache.tapestry5.internal.services.BindingSourceImpl.newBinding(BindingSourceImpl.java:85)
>       at $BindingSource_2909eea0981.newBinding(Unknown Source)
>       at $BindingSource_2909eea0925.newBinding(Unknown Source)
>       at 
> org.apache.tapestry5.internal.services.PageElementFactoryImpl.newExpansionElement(PageElementFactoryImpl.java:164)
>       at $PageElementFactory_2909eea0980.newExpansionElement(Unknown Source)
>       at $PageElementFactory_2909eea08f8.newExpansionElement(Unknown Source)
>       at 
> org.apache.tapestry5.internal.pageload.PageLoaderImpl$15.execute(PageLoaderImpl.java:1100)
>       at 
> org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.runActions(ComponentAssemblerImpl.java:229)
>       at 
> org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl.access$3(ComponentAssemblerImpl.java:224)
>       at 
> org.apache.tapestry5.internal.pageload.ComponentAssemblerImpl$2.run(ComponentAssemblerImpl.java:180)
>       ... 121 more
> Caused by: 
> org.apache.tapestry5.beanmodel.internal.services.PropertyExpressionException: 
> Exception generating conduit for expression 'EmptyTable': 
> java.lang.NullPointerException
>       at 
> org.apache.tapestry5.beanmodel.internal.services.PropertyConduitSourceImpl.build(PropertyConduitSourceImpl.java:1531)
>       at 
> org.apache.tapestry5.beanmodel.internal.services.PropertyConduitSourceImpl.create(PropertyConduitSourceImpl.java:1441)
>       at $PropertyConduitSource_2909eea08c4.create(Unknown Source)
>       at $PropertyConduitSource_2909eea08b6.create(Unknown Source)
>       at 
> org.apache.tapestry5.internal.bindings.PropBindingFactory.newBinding(PropBindingFactory.java:56)
>       at $BindingFactory_2909eea098a.newBinding(Unknown Source)
>       at $BindingFactory_2909eea0982.newBinding(Unknown Source)
>       at 
> org.apache.tapestry5.internal.services.BindingSourceImpl.newBinding(BindingSourceImpl.java:82)
>       ... 130 more
> Caused by: java.lang.RuntimeException: java.lang.NullPointerException
>       at 
> org.apache.tapestry5.beanmodel.internal.services.PropertyAccessImpl.buildAdapter(PropertyAccessImpl.java:117)
>       at 
> org.apache.tapestry5.beanmodel.internal.services.PropertyAccessImpl.getAdapter(PropertyAccessImpl.java:80)
>       at $PropertyAccess_2909eea0923.getAdapter(Unknown Source)
>       at $PropertyAccess_2909eea089f.getAdapter(Unknown Source)
>       at 
> org.apache.tapestry5.beanmodel.internal.services.PropertyConduitSourceImpl$PropertyConduitBuilder.findPropertyAdapter(PropertyConduitSourceImpl.java:1194)
>       at 
> org.apache.tapestry5.beanmodel.internal.services.PropertyConduitSourceImpl$PropertyConduitBuilder.implementPropertyAccessors(PropertyConduitSourceImpl.java:547)
>       at 
> org.apache.tapestry5.beanmodel.internal.services.PropertyConduitSourceImpl$PropertyConduitBuilder.implementAccessors(PropertyConduitSourceImpl.java:451)
>       at 
> org.apache.tapestry5.beanmodel.internal.services.PropertyConduitSourceImpl$PropertyConduitBuilder.implementNavMethodAndAccessors(PropertyConduitSourceImpl.java:442)
>       at 
> org.apache.tapestry5.beanmodel.internal.services.PropertyConduitSourceImpl$PropertyConduitBuilder.transform(PropertyConduitSourceImpl.java:312)
>       at 
> org.apache.tapestry5.plastic.PlasticManager.createProxy(PlasticManager.java:287)
>       at 
> org.apache.tapestry5.plastic.PlasticManager.createProxy(PlasticManager.java:262)
>       at 
> org.apache.tapestry5.plastic.PlasticManager.createProxy(PlasticManager.java:229)
>       at 
> org.apache.tapestry5.beanmodel.services.PlasticProxyFactoryImpl.createProxy(PlasticProxyFactoryImpl.java:86)
>       at 
> org.apache.tapestry5.beanmodel.internal.services.PropertyConduitSourceImpl.build(PropertyConduitSourceImpl.java:1527)
>       ... 137 more
> Caused by: java.lang.NullPointerException
>       at 
> java.desktop/com.sun.beans.TypeResolver.resolve(TypeResolver.java:203)
>       at 
> java.desktop/com.sun.beans.TypeResolver.resolve(TypeResolver.java:218)
>       at 
> java.desktop/com.sun.beans.TypeResolver.resolve(TypeResolver.java:169)
>       at 
> java.desktop/com.sun.beans.TypeResolver.resolveInClass(TypeResolver.java:81)
>       at 
> java.desktop/com.sun.beans.introspect.MethodInfo.resolve(MethodInfo.java:63)
>       at 
> java.desktop/com.sun.beans.introspect.MethodInfo.<init>(MethodInfo.java:50)
>       at 
> java.desktop/com.sun.beans.introspect.PropertyInfo.add(PropertyInfo.java:245)
>       at 
> java.desktop/com.sun.beans.introspect.PropertyInfo.get(PropertyInfo.java:285)
>       at 
> java.desktop/com.sun.beans.introspect.ClassInfo.getProperties(ClassInfo.java:91)
>       at 
> java.desktop/java.beans.Introspector.getTargetPropertyInfo(Introspector.java:499)
>       at 
> java.desktop/java.beans.Introspector.getBeanInfo(Introspector.java:447)
>       at 
> java.desktop/java.beans.Introspector.getBeanInfo(Introspector.java:195)
>       at 
> org.apache.tapestry5.beanmodel.internal.services.PropertyAccessImpl.buildAdapter(PropertyAccessImpl.java:99)
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to