Thanks for the reply Robert, but that doesn't seem to be the issue, any other ideas?
----- Original Message ----- From: "Robert Zeigler" <robe...@scazdl.org> To: "Tapestry users" <users@tapestry.apache.org> Sent: Thursday, 5 March, 2009 00:45:14 GMT +02:00 Athens, Beirut, Bucharest, Istanbul Subject: Re: Tapestry 5.1 session invalidate misbehaving Try switching the order of homePage.setIsSignOut(true) and request.getSession(false).invalidate(); It looks like the homePage is being lazily evaluated right there, and the page load is failing; if you switch the order, I think you'll be set. Robert On Mar 4, 2009, at 3/48:39 AM , Peter Stavrinides wrote: > Hi, > > The following code worked in all versions before 5.1, but now I get > the exception listed below: > @Inject > private Request request; > > @InjectPage > private Home homePage; > > @OnEvent(component = "signOut") > Object onEventFromSignOut() { > try { > > request.getSession(false).invalidate(); > homePage.setIsSignOut(true); > return homePage; > } catch (Throwable e) { > // > } > return null; > } > > - com.albourne.web.components.hf.Header (112) > org.apache.tapestry5.ioc.internal.util.TapestryException: > getAttributeNames: Session already invalidated > at > org > .apache > .tapestry5 > .internal > .structure > .ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:935) > at > org > .apache > .tapestry5 > .internal > .structure > .ComponentPageElementImpl > .containingPageDidAttach(ComponentPageElementImpl.java:733) > at > org > .apache.tapestry5.internal.structure.PageImpl.attached(PageImpl.java: > 144) > at > org > .apache > .tapestry5 > .internal > .services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:55) > at > $RequestPageCache_11fd1d95dc7.get($RequestPageCache_11fd1d95dc7.java) > at > $RequestPageCache_11fd1d95db0.get($RequestPageCache_11fd1d95db0.java) > at > org > .apache > .tapestry5 > .internal > .services.ComponentSourceImpl.getPage(ComponentSourceImpl.java:79) > at > $ > ComponentSource_11fd1d95dbe.getPage($ComponentSource_11fd1d95dbe.java) > at com.albourne.web.components.hf.Header._ > $read_inject_page_homePage(Header.java) > at > com.albourne.web.components.hf.Header.onEventFromSignOut(Header.java: > 106) > at > com > .albourne.web.components.hf.Header.dispatchComponentEvent(Header.java) > at > org > .apache > .tapestry5 > .internal > .structure > .ComponentPageElementImpl > .dispatchEvent(ComponentPageElementImpl.java:889) > at > org > .apache > .tapestry5 > .internal > .structure > .ComponentPageElementImpl > .triggerContextEvent(ComponentPageElementImpl.java:1068) > at > org > .apache > .tapestry5 > .internal > .services > .ComponentEventRequestHandlerImpl > .handle(ComponentEventRequestHandlerImpl.java:75) > at > org > .apache > .tapestry5 > .internal > .services > .ImmediateActionRenderResponseFilter > .handle(ImmediateActionRenderResponseFilter.java:42) > at > $ > ComponentEventRequestHandler_11fd1d95e24 > .handle($ComponentEventRequestHandler_11fd1d95e24.java) > at > org > .apache > .tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42) > at > $ > ComponentEventRequestHandler_11fd1d95e24 > .handle($ComponentEventRequestHandler_11fd1d95e24.java) > at org.apache.tapestry5.services.TapestryModule > $35.handle(TapestryModule.java:2085) > at > $ > ComponentEventRequestHandler_11fd1d95e24 > .handle($ComponentEventRequestHandler_11fd1d95e24.java) > at > $ > ComponentEventRequestHandler_11fd1d95dae > .handle($ComponentEventRequestHandler_11fd1d95dae.java) > at > org > .apache > .tapestry5 > .internal > .services > .ComponentRequestHandlerTerminator > .handleComponentEvent(ComponentRequestHandlerTerminator.java:43) > at > $ > ComponentRequestHandler_11fd1d95da7 > .handleComponentEvent($ComponentRequestHandler_11fd1d95da7.java) > at > org > .apache > .tapestry5 > .internal > .services > .ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:138) > at $Dispatcher_11fd1d95da9.dispatch($Dispatcher_11fd1d95da9.java) > at $Dispatcher_11fd1d95d9b.dispatch($Dispatcher_11fd1d95d9b.java) > at org.apache.tapestry5.services.TapestryModule > $RequestHandlerTerminator.service(TapestryModule.java:242) > at > org > .apache > .tapestry5 > .internal > .services.RequestErrorFilter.service(RequestErrorFilter.java:26) > at > $RequestHandler_11fd1d95d9c.service($RequestHandler_11fd1d95d9c.java) > at org.apache.tapestry5.services.TapestryModule > $4.service(TapestryModule.java:760) > at > $RequestHandler_11fd1d95d9c.service($RequestHandler_11fd1d95d9c.java) > at org.apache.tapestry5.services.TapestryModule > $3.service(TapestryModule.java:750) > at > $RequestHandler_11fd1d95d9c.service($RequestHandler_11fd1d95d9c.java) > at > org > .apache > .tapestry5 > .internal.services.StaticFilesFilter.service(StaticFilesFilter.java: > 85) > at > $RequestHandler_11fd1d95d9c.service($RequestHandler_11fd1d95d9c.java) > at > com > .albourne > .web.services.PageAccessController.service(PageAccessController.java: > 186) > at > $RequestHandler_11fd1d95d9c.service($RequestHandler_11fd1d95d9c.java) > at com.albourne.web.services.AppModule$3.service(AppModule.java:211) > at > $RequestFilter_11fd1d95d99.service($RequestFilter_11fd1d95d99.java) > at > $RequestHandler_11fd1d95d9c.service($RequestHandler_11fd1d95d9c.java) > at org.apache.tapestry5.internal.services.CheckForUpdatesFilter > $2.invoke(CheckForUpdatesFilter.java:90) > at org.apache.tapestry5.internal.services.CheckForUpdatesFilter > $2.invoke(CheckForUpdatesFilter.java:81) > 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_11fd1d95d9c.service($RequestHandler_11fd1d95d9c.java) > at > $RequestHandler_11fd1d95d92.service($RequestHandler_11fd1d95d92.java) > at org.apache.tapestry5.services.TapestryModule > $HttpServletRequestHandlerTerminator.service(TapestryModule.java:194) > at > org > .apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53) > at > $ > HttpServletRequestHandler_11fd1d95d94 > .service($HttpServletRequestHandler_11fd1d95d94.java) > at > org > .apache > .tapestry5 > .internal > .services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) > at > $ > HttpServletRequestFilter_11fd1d95d91 > .service($HttpServletRequestFilter_11fd1d95d91.java) > at > $ > HttpServletRequestHandler_11fd1d95d94 > .service($HttpServletRequestHandler_11fd1d95d94.java) > at org.apache.tapestry5.services.TapestryModule > $2.service(TapestryModule.java:712) > at > $ > HttpServletRequestHandler_11fd1d95d94 > .service($HttpServletRequestHandler_11fd1d95d94.java) > at > $ > HttpServletRequestHandler_11fd1d95d8f > .service($HttpServletRequestHandler_11fd1d95d8f.java) > at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java: > 127) > at > org > .apache > .catalina > .core > .ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: > 235) > at > org > .apache > .catalina > .core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org > .apache > .catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java: > 233) > at > org > .apache > .catalina.core.StandardContextValve.invoke(StandardContextValve.java: > 175) > at > org > .apache > .catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > at > org > .apache > .catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at > org > .apache > .catalina.core.StandardEngineValve.invoke(StandardEngineValve.java: > 109) > at > org > .apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java: > 286) > at > org > .apache.coyote.http11.Http11Processor.process(Http11Processor.java: > 844) > at org.apache.coyote.http11.Http11Protocol > $Http11ConnectionHandler.process(Http11Protocol.java:583) > at org.apache.tomcat.util.net.JIoEndpoint > $Worker.run(JIoEndpoint.java:447) > at java.lang.Thread.run(Thread.java:619) > Caused by: java.lang.IllegalStateException: getAttributeNames: > Session already invalidated > at > org > .apache > .catalina > .session.StandardSession.getAttributeNames(StandardSession.java:1050) > at > org > .apache > .catalina > .session > .StandardSessionFacade.getAttributeNames(StandardSessionFacade.java: > 120) > at > org > .apache > .tapestry5 > .internal.services.SessionImpl.getAttributeNames(SessionImpl.java:76) > at > org > .apache > .tapestry5 > .internal > .services > .AbstractSessionPersistentFieldStrategy > .gatherFieldChanges(AbstractSessionPersistentFieldStrategy.java:54) > at > org > .apache > .tapestry5 > .internal > .services > .PersistentFieldManagerImpl > .gatherChanges(PersistentFieldManagerImpl.java:62) > at > $ > PersistentFieldManager_11fd1d95dd9 > .gatherChanges($PersistentFieldManager_11fd1d95dd9.java) > at > org > .apache > .tapestry5.internal.structure.PageImpl.getFieldChange(PageImpl.java: > 162) > at > org > .apache > .tapestry5 > .internal > .structure > .InternalComponentResourcesImpl > .getFieldChange(InternalComponentResourcesImpl.java:158) > at > org > .apache > .tapestry5 > .internal > .structure > .InternalComponentResourcesImpl > .hasFieldChange(InternalComponentResourcesImpl.java:168) > at com.albourne.web.pages.Home.containingPageDidAttach(Home.java) > at org.apache.tapestry5.internal.structure.ComponentPageElementImpl > $1.run(ComponentPageElementImpl.java:74) > at > org > .apache > .tapestry5 > .internal > .structure > .ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:920) > ... 67 more > > Can someone please point out what has changed and how I might be > able to fix this... it seems that Tapestry is trying to set/get > attributes from a stale session, but it should really create a new > one, I have tried all sorts of workarounds including forcing > creation of a new session, just returning the page, using a > redirect, constructing a link object but nothing seems to work. > > Tested using Java 6 - Tomcat / Jetty on Ubuntu. > > Thanks, > Peter > > --------------------------------------------------------------------- > 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 --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org