Class ClusteredSessionImpl
- java.lang.Object
-
- org.apache.tapestry5.http.internal.services.SessionImpl
-
- org.apache.tapestry5.http.internal.services.ClusteredSessionImpl
-
- All Implemented Interfaces:
Session
public class ClusteredSessionImpl extends SessionImpl
A thin wrapper aroundHttpSession
that supports re-storing of mutable session attributes at the end of the request (seerestoreDirtyObjects()
). This is only used when clustering.- Since:
- 5.3
- See Also:
SessionPersistedObjectAnalyzer
-
-
Constructor Summary
Constructors Constructor Description ClusteredSessionImpl(HttpServletRequest request, HttpSession session, SessionLock lock, SessionPersistedObjectAnalyzer analyzer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
getAttribute(String name)
Returns the value previously stored in the session.void
invalidate()
Invalidates this session then unbinds any objects bound to it.void
restoreDirtyObjects()
Re-stores dirty objects back into the session.void
setAttribute(String name, Object value)
Sets the value of an attribute.-
Methods inherited from class org.apache.tapestry5.http.internal.services.SessionImpl
getAttributeNames, getAttributeNames, getMaxInactiveInterval, isInvalidated, setMaxInactiveInterval
-
-
-
-
Constructor Detail
-
ClusteredSessionImpl
public ClusteredSessionImpl(HttpServletRequest request, HttpSession session, SessionLock lock, SessionPersistedObjectAnalyzer analyzer)
-
-
Method Detail
-
getAttribute
public Object getAttribute(String name)
Description copied from interface:Session
Returns the value previously stored in the session.- Specified by:
getAttribute
in interfaceSession
- Overrides:
getAttribute
in classSessionImpl
-
setAttribute
public void setAttribute(String name, Object value)
Description copied from interface:Session
Sets the value of an attribute. If the value is null, then the attribute is deleted.- Specified by:
setAttribute
in interfaceSession
- Overrides:
setAttribute
in classSessionImpl
-
invalidate
public void invalidate()
Description copied from interface:Session
Invalidates this session then unbinds any objects bound to it.- Specified by:
invalidate
in interfaceSession
- Overrides:
invalidate
in classSessionImpl
-
restoreDirtyObjects
public void restoreDirtyObjects()
Description copied from interface:Session
Re-stores dirty objects back into the session. This is necessary to support clustering, because (in most application servers) session objects are only broadcast around the cluster from setAttribute(). If a mutable session object is read and changed, those changes will be limited to a single server in the cluster, which can cause confusing application failures in the event of a failover. Does nothing if there are no changes, or the session has been invalidated.- Specified by:
restoreDirtyObjects
in interfaceSession
- Overrides:
restoreDirtyObjects
in classSessionImpl
- See Also:
OptimizedSessionPersistedObject
,OptimizedSessionPersistedObjectAnalyzer
,ImmutableSessionPersistedObject
-
-