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
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.tapestry5.http.services.Session
Session.LockMode
-
-
Constructor Summary
Constructors Constructor Description ClusteredSessionImpl(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpSession session, SessionLock lock, SessionPersistedObjectAnalyzer analyzer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
getAttribute(java.lang.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(java.lang.String name, java.lang.Object value)
Sets the value of an attribute.-
Methods inherited from class org.apache.tapestry5.http.internal.services.SessionImpl
containsAttribute, containsAttribute, getAttribute, getAttributeNames, getAttributeNames, getAttributeNames, getAttributeNames, getMaxInactiveInterval, isInvalidated, setMaxInactiveInterval
-
-
-
-
Constructor Detail
-
ClusteredSessionImpl
public ClusteredSessionImpl(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpSession session, SessionLock lock, SessionPersistedObjectAnalyzer analyzer)
-
-
Method Detail
-
getAttribute
public java.lang.Object getAttribute(java.lang.String name)
Description copied from interface:Session
Returns the value previously stored in the session.By default, a
WRITE
lock is requested.- Specified by:
getAttribute
in interfaceSession
- Overrides:
getAttribute
in classSessionImpl
- Parameters:
name
- The name of the attribute
-
setAttribute
public void setAttribute(java.lang.String name, java.lang.Object value)
Description copied from interface:Session
Sets the value of an attribute. If the value isnull
, then the attribute is deleted.- Specified by:
setAttribute
in interfaceSession
- Overrides:
setAttribute
in classSessionImpl
- Parameters:
name
- The name of the attributevalue
- The new value of the attribute;null
deletes the attribute.
-
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
-
-