Update on the WAS8 issue: We've created a simple test application and can reproduce this problem with that (our app used Spring, Hibernate and 50 other libs - the demo only Tapestry): https://github.com/porscheinformatik/tapestry-was8 So, now we can definitly say that this is a problem with Tapestry 5.2.x running under Websphere 8.
The problem can only be reproduced with 5.2.6, Tapestry 5.3.7 seems not to trigger the NPE (this could be due to the remove of javassist). The problem cannot be reproduced with JIT disabled - we're just investigating this with IBM. I have created a tracking issue https://issues.apache.org/jira/browse/TAP5-2152. I will track the progress if anybody else needs to run under WAS8 - and update docs after finding a solution. 2013/7/9 Lance Java <lance.j...@googlemail.com>: > I'm guessing that this is a bug in the way websphere 8 handles either > classloaders or threadlocals. > > Tapestry injects the ComponentResources via InjectWorker, > InjectionProvider2 and CommonResourcesInjectionProvider. You could try to > add some logging to CommonResourcesInjectionProvider to see what's going > on. Perhaps the InstanceContext is in some state where ComponentResources > is null? > On 9 Jul 2013 08:55, "Christian Köberl" < > tapestry.christian.koeb...@gmail.com> wrote: > >> We're still searching (debugging, tracing) to find the reason for this NPE. >> >> During our tests the same problem occurred in some more places (the >> original one was Form:406): >> >> - org.apache.tapestry5.corelib.components.Form.beginRender(Form.java:408) >> Corresponding line from Tapestry Form: >> resources.triggerEvent(EventConstants.PREPARE, context, null); >> The strange part here is that the code line before (406) uses the >> same field "resources" without a NPE: >> resources.triggerEvent(EventConstants.PREPARE_FOR_RENDER, context, >> null); >> >> - org.apache.tapestry5.corelib.components.Zone.beginRender(Zone.java:171) >> Corresponding line from Tapestry Zone: >> clientBehaviorSupport.addZone(clientId, show, update); >> >> Another "fun" fact: the NPE in Zone only occurs on one page whereas >> the NPE in Form occurs on all pages using a Form. >> >> Anyone an idea? >> >> >> 2013/6/25 Christian Köberl <tapestry.christian.koeb...@gmail.com>: >> > We have a quite strange behavior on IBM Websphere 8 / IBM Java 6 - we >> > get a NullPointerException in Form.java:406 (Tapestry 5.2.6). >> > Here's the corresponding line from Form.java:406: >> > resources.triggerEvent(EventConstants.PREPARE_FOR_RENDER, context, null); >> > >> > The NPE first is raised after some parallel users are working with the >> > application - before that everything works fine. After the first >> > occurrence, the NPE is raised on *any* Form render on *any* page for >> > *all* users. We have to restart the application to get it working >> > again. We can reproduce the error with some load but the first NPE >> > happens on different pages - so that's no clue. >> > >> > Happily we found this during our tests on WAS8 (not in production) - >> > we were migrating from WAS6 (the same version of the application runs >> > fine on WAS6). >> > >> > Has anybody an idea what's happening here? >> > >> > Thx, >> > Chris >> > >> > Hers is the full stack trace for one page (looks the same for all pages): >> > >> > org.apache.tapestry5.internal.services.RenderQueueException: Render >> > queue error in BeginRender[organization/user/List:form]: >> > org.apache.tapestry5.ioc.internal.util.TapestryException [at >> > classpath:ourapp/organization/web/pages/user/UserList.tml, line 47] >> > at >> org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:84) >> > at >> org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:127) >> > at >> $PageRenderQueue_13f76df51b3.render($PageRenderQueue_13f76df51b3.java) >> > at >> $PageRenderQueue_13f76df5192.render($PageRenderQueue_13f76df5192.java) >> > at >> org.apache.tapestry5.internal.services.MarkupRendererTerminator.renderMarkup(MarkupRendererTerminator.java:37) >> > at ourapp.ui.UIModule$2.renderMarkup(UIModule.java:234) >> > at >> $MarkupRenderer_13f76df51b5.renderMarkup($MarkupRenderer_13f76df51b5.java) >> > at ourapp.ui.UIModule$1.renderMarkup(UIModule.java:211) >> > at >> $MarkupRenderer_13f76df51b5.renderMarkup($MarkupRenderer_13f76df51b5.java) >> > at >> org.apache.tapestry5.services.TapestryModule$29.renderMarkup(TapestryModule.java:2089) >> > at >> $MarkupRenderer_13f76df51b5.renderMarkup($MarkupRenderer_13f76df51b5.java) >> > at >> org.apache.tapestry5.services.TapestryModule$28.renderMarkup(TapestryModule.java:2073) >> > at >> $MarkupRenderer_13f76df51b5.renderMarkup($MarkupRenderer_13f76df51b5.java) >> > at >> org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:2055) >> > at >> $MarkupRenderer_13f76df51b5.renderMarkup($MarkupRenderer_13f76df51b5.java) >> > at >> org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:2040) >> > at >> $MarkupRenderer_13f76df51b5.renderMarkup($MarkupRenderer_13f76df51b5.java) >> > at >> org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:2026) >> > at >> $MarkupRenderer_13f76df51b5.renderMarkup($MarkupRenderer_13f76df51b5.java) >> > at >> org.apache.tapestry5.services.TapestryModule$24.renderMarkup(TapestryModule.java:2008) >> > at >> $MarkupRenderer_13f76df51b5.renderMarkup($MarkupRenderer_13f76df51b5.java) >> > at >> org.apache.tapestry5.services.TapestryModule$23.renderMarkup(TapestryModule.java:1989) >> > at >> $MarkupRenderer_13f76df51b5.renderMarkup($MarkupRenderer_13f76df51b5.java) >> > at >> $MarkupRenderer_13f76df51b2.renderMarkup($MarkupRenderer_13f76df51b2.java) >> > at >> org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:47) >> > at >> $PageMarkupRenderer_13f76df51af.renderPageMarkup($PageMarkupRenderer_13f76df51af.java) >> > at >> org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:67) >> > at >> ourapp.ui.internal.services.CacheHeaderPageResponseRendererDecorator.renderPageResponse(CacheHeaderPageResponseRendererDecorator.java:27) >> > at >> $PageResponseRenderer_13f76df51ab.renderPageResponse($PageResponseRenderer_13f76df51ab.java) >> > at >> org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:64) >> > at >> org.apache.tapestry5.services.TapestryModule$36.handle(TapestryModule.java:2326) >> > at >> $PageRenderRequestHandler_13f76df51ad.handle($PageRenderRequestHandler_13f76df51ad.java) >> > at >> $PageRenderRequestHandler_13f76df51a8.handle($PageRenderRequestHandler_13f76df51a8.java) >> > at >> org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48) >> > at >> ourapp.ui.services.SingleRequestFilter.handlePageRender(SingleRequestFilter.java:85) >> > at >> $ComponentRequestHandler_13f76df51a9.handlePageRender($ComponentRequestHandler_13f76df51a9.java) >> > at >> org.apache.tapestry5.services.InitializeActivePageName.handlePageRender(InitializeActivePageName.java:47) >> > at >> $ComponentRequestHandler_13f76df51a9.handlePageRender($ComponentRequestHandler_13f76df51a9.java) >> > at >> $ComponentRequestHandler_13f76df50da.handlePageRender($ComponentRequestHandler_13f76df50da.java) >> > at >> org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:45) >> > at $Dispatcher_13f76df50e0.dispatch($Dispatcher_13f76df50e0.java) >> > at $Dispatcher_13f76df50d7.dispatch($Dispatcher_13f76df50d7.java) >> > at >> org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:321) >> > at >> org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) >> > at >> $RequestHandler_13f76df50d8.service($RequestHandler_13f76df50d8.java) >> > at >> org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:984) >> > at >> $RequestHandler_13f76df50d8.service($RequestHandler_13f76df50d8.java) >> > at >> org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:974) >> > at >> $RequestHandler_13f76df50d8.service($RequestHandler_13f76df50d8.java) >> > at >> org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90) >> > at >> $RequestHandler_13f76df50d8.service($RequestHandler_13f76df50d8.java) >> > at >> ourapp.ui.internal.services.LocaleContextHolderSetter.service(LocaleContextHolderSetter.java:30) >> > at >> $RequestHandler_13f76df50d8.service($RequestHandler_13f76df50d8.java) >> > at >> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90) >> > at >> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:80) >> > at >> org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) >> > at >> org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103) >> > at >> $RequestHandler_13f76df50d8.service($RequestHandler_13f76df50d8.java) >> > at >> $RequestHandler_13f76df50c4.service($RequestHandler_13f76df50c4.java) >> > at >> org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:272) >> > at >> ourapp.webservice.JaxWsHttpServletRequestFilter.service(JaxWsHttpServletRequestFilter.java:120) >> > at >> $HttpServletRequestFilter_13f76df50c3.service($HttpServletRequestFilter_13f76df50c3.java) >> > at >> $HttpServletRequestHandler_13f76df50c6.service($HttpServletRequestHandler_13f76df50c6.java) >> > at >> org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44) >> > at >> $HttpServletRequestHandler_13f76df50c6.service($HttpServletRequestHandler_13f76df50c6.java) >> > at >> $HttpServletRequestHandler_13f76df50c6.service($HttpServletRequestHandler_13f76df50c6.java) >> > at >> org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) >> > at >> $HttpServletRequestFilter_13f76df50c1.service($HttpServletRequestFilter_13f76df50c1.java) >> > at >> $HttpServletRequestHandler_13f76df50c6.service($HttpServletRequestHandler_13f76df50c6.java) >> > at >> org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:928) >> > at >> $HttpServletRequestHandler_13f76df50c6.service($HttpServletRequestHandler_13f76df50c6.java) >> > at >> $HttpServletRequestHandler_13f76df50bf.service($HttpServletRequestHandler_13f76df50bf.java) >> > at >> ourapp.ui.tapestry.TapestryFilter$TapestryFilterChain.doFilter(TapestryFilter.java:63) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330) >> > at >> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118) >> > at >> org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >> > at >> org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >> > at >> org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >> > at >> org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >> > at >> org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >> > at >> org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >> > at >> org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:183) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >> > at >> ourapp.security.services.PreAuthenticatedProcessingFilterChain$VirtualFilterChain.doFilter(PreAuthenticatedProcessingFilterChain.java:80) >> > at >> ourapp.security.services.PreAuthenticatedProcessingFilterChain.doFilter(PreAuthenticatedProcessingFilterChain.java:45) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >> > at >> org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >> > at >> org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87) >> > at >> org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) >> > at >> org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192) >> > at >> org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160) >> > at >> ourapp.ui.tapestry.TapestryFilter.doFilter(TapestryFilter.java:137) >> > at >> com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195) >> > at >> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91) >> > at >> com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928) >> > at >> com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025) >> > at >> com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3751) >> > at >> com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304) >> > at >> com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:962) >> > at >> com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662) >> > at >> com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195) >> > at >> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452) >> > at >> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511) >> > at >> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305) >> > at >> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:276) >> > at >> com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214) >> > at >> com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113) >> > at >> com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) >> > at >> com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) >> > at >> com.ibm.io.async.AsyncChannelFuture$1.run(AsyncChannelFuture.java:205) >> > at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1690) >> > Caused by: >> > org.apache.tapestry5.ioc.internal.util.TapestryException [at >> > classpath:ourapp/organization/web/pages/user/UserList.tml, line 47] >> > at >> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:194) >> > at >> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$BeginRenderPhase.render(ComponentPageElementImpl.java:246) >> > at >> org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72) >> > ... 118 more >> > Caused by: >> > java.lang.NullPointerException >> > at >> org.apache.tapestry5.corelib.components.Form.beginRender(Form.java:406) >> > at >> org.apache.tapestry5.corelib.components.Form$MethodAccess_beginRender_13f76df5156.invoke(Form$MethodAccess_beginRender_13f76df5156.java) >> > at >> org.apache.tapestry5.internal.transform.RenderPhaseMethodWorker$Invoker.invoke(RenderPhaseMethodWorker.java:117) >> > at >> org.apache.tapestry5.internal.transform.RenderPhaseMethodWorker$RenderPhaseMethodAdvice.advise(RenderPhaseMethodWorker.java:86) >> > at >> org.apache.tapestry5.internal.services.AbstractComponentMethodInvocation.proceed(AbstractComponentMethodInvocation.java:86) >> > at >> org.apache.tapestry5.corelib.components.Form.beginRender(Form.java) >> > at >> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$BeginRenderPhase.invokeComponent(ComponentPageElementImpl.java:239) >> > at >> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:186) >> > ... 120 more >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >> For additional commands, e-mail: users-h...@tapestry.apache.org >> >> --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org