nikos dimitrakas created WW-5297: ------------------------------------ Summary: Decorator not working after invalidating session Key: WW-5297 URL: https://issues.apache.org/jira/browse/WW-5297 Project: Struts 2 Issue Type: Bug Components: Core Tags, Plugin - SiteMesh Affects Versions: 6.1.2 Reporter: nikos dimitrakas
When trying to upgrade from 2.5 to 6.1.2 I get a strange behaviour when decorating a jsp. I have an action that is used to log out a user. The action is basically only invalidating the session and then goes to the jsp. One of the interceptors is using sitemesh and applies the specified decorator. With Struts 2.5 this worked fine. But with Struts 6.1.2 (probably all the 6.x) I get an error "Session already invalidated" when getAttribute is called from org.apache.struts2.dispatcher.SessionMap. Here is the relevant part of the stacktrace: Caused by: java.lang.IllegalStateException: getAttribute: Session already invalidated at org.apache.catalina.session.StandardSession.getAttribute(StandardSession.java:1148) at org.apache.catalina.session.StandardSessionFacade.getAttribute(StandardSessionFacade.java:102) at org.apache.struts2.dispatcher.SessionMap.get(SessionMap.java:157) at org.apache.struts2.components.UIBean.evaluateParams(UIBean.java:879) at org.apache.struts2.components.Head.evaluateParams(Head.java:71) at org.apache.struts2.components.UIBean.end(UIBean.java:550) at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:40) There is nothing about this changed behaviour in the migration guide from Struts 2.5 to 6. Is this a bug introduced in 6.x? Or is this by design? >From what I can see, the error occurs when an s:head inside the decorator is >evaluated. -- This message was sent by Atlassian Jira (v8.20.10#820010)