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

Reply via email to