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

Reply via email to