You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Peter Stavrinides <P....@albourne.com> on 2009/03/04 15:39:06 UTC

Tapestry 5.1 session invalidate misbehaving

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-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Tapestry 5.1 session invalidate misbehaving

Posted by Peter Stavrinides <P....@albourne.com>.
Thanks for the reply Robert, but that doesn't seem to be the issue, any other ideas?


----- Original Message -----
From: "Robert Zeigler" <ro...@scazdl.org>
To: "Tapestry users" <us...@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-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Tapestry 5.1 session invalidate misbehaving

Posted by Robert Zeigler <ro...@scazdl.org>.
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-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org