blob: afa76429e463f76db1cb0daf4b93a0e1327385b2 [file] [log] [blame]
<!DOCTYPE HTML>
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (11.0.10) on Fri Feb 26 09:50:23 CST 2021 -->
<title>SessionCache (Jetty :: Project 9.4.38.v20210224 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2021-02-26">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SessionCache (Jetty :: Project 9.4.38.v20210224 API)";
}
}
catch(err) {
}
//-->
var data = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":38,"i20":6,"i21":50,"i22":18,"i23":6,"i24":6,"i25":6,"i26":6,"i27":6,"i28":6,"i29":6,"i30":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],16:["t5","Default Methods"],32:["t6","Deprecated Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../";
var useModuleDirectories = false;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a id="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SessionCache.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>
<!-- ======== START OF CLASS DATA ======== -->
<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.eclipse.jetty.server.session</a></div>
<h2 title="Interface SessionCache" class="title">Interface SessionCache</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><code><a href="../../util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a></code></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><code><a href="AbstractSessionCache.html" title="class in org.eclipse.jetty.server.session">AbstractSessionCache</a></code>, <code><a href="DefaultSessionCache.html" title="class in org.eclipse.jetty.server.session">DefaultSessionCache</a></code>, <code><a href="NullSessionCache.html" title="class in org.eclipse.jetty.server.session">NullSessionCache</a></code></dd>
</dl>
<hr>
<pre>public interface <span class="typeNameLabel">SessionCache</span>
extends <a href="../../util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a></pre>
<div class="block">SessionCache
A working set of <a href="Session.html" title="class in org.eclipse.jetty.server.session"><code>Session</code></a> objects for a context.
Ideally, multiple requests for the same session id in the same context will always
share the same Session object from the SessionCache, but it would be possible
for implementations of SessionCache to create a fresh object for each request.
The SessionData pertaining to the Session objects is obtained from/written to a SessionDataStore.
The SessionDataStore is the authoritative source of session data:
<ul>
<li>if the session data is not present in the SessionDataStore the session does not exist.</li>
<li>if the session data is present in the SessionDataStore but its expiry time has passed then
the session is deemed to have expired and is therefore invalid</li>
</ul>
A SessionCache can passivate a valid Session to the SessionDataStore and
evict it from the cache according to various strategies:
<ul>
<li>whenever the last request exits a Session</li>
<li>whenever the Session has not been accessed for a configurable number of seconds</li>
</ul>.
Eviction can save memory, and can also help mitigate
some of the problems of a non-sticky load balancer by forcing the session data to
be re-read from the SessionDataStore more frequently.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a id="nested.classes.inherited.from.class.org.eclipse.jetty.util.component.LifeCycle">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a></h3>
<code><a href="../../util/component/LifeCycle.Listener.html" title="interface in org.eclipse.jetty.util.component">LifeCycle.Listener</a></code></li>
</ul>
</li>
</ul>
</section>
<!-- =========== FIELD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Field</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVICT_ON_INACTIVITY">EVICT_ON_INACTIVITY</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#EVICT_ON_SESSION_EXIT">EVICT_ON_SESSION_EXIT</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#NEVER_EVICT">NEVER_EVICT</a></span></code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
</li>
</ul>
</section>
<!-- ========== METHOD SUMMARY =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t5" class="tableTab"><span><a href="javascript:show(16);">Default Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#add(java.lang.String,org.eclipse.jetty.server.session.Session)">add</a></span>&#8203;(java.lang.String&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</code></th>
<td class="colLast">
<div class="block">Adds a new Session, with a never-before-used id,
to the cache.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>java.util.Set&lt;java.lang.String&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkExpiration(java.util.Set)">checkExpiration</a></span>&#8203;(java.util.Set&lt;java.lang.String&gt;&nbsp;candidates)</code></th>
<td class="colLast">
<div class="block">Check a list of session ids that belong to potentially expired
sessions.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#checkInactiveSession(org.eclipse.jetty.server.session.Session)">checkInactiveSession</a></span>&#8203;(<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</code></th>
<td class="colLast">
<div class="block">Check a Session to see if it might be appropriate to
evict or expire.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#commit(org.eclipse.jetty.server.session.Session)">commit</a></span>&#8203;(<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</code></th>
<td class="colLast">
<div class="block">Called when a response is about to be committed.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#contains(java.lang.String)">contains</a></span>&#8203;(java.lang.String&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Check to see if a Session is in the cache.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#delete(java.lang.String)">delete</a></span>&#8203;(java.lang.String&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Remove a Session completely: from both this
cache and the SessionDataStore.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#exists(java.lang.String)">exists</a></span>&#8203;(java.lang.String&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Check to see if a session exists: WILL consult the
SessionDataStore.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#get(java.lang.String)">get</a></span>&#8203;(java.lang.String&nbsp;id)</code></th>
<td class="colLast">
<div class="block">Get an existing Session.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>int</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getEvictionPolicy()">getEvictionPolicy</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="SessionDataStore.html" title="interface in org.eclipse.jetty.server.session">SessionDataStore</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSessionDataStore()">getSessionDataStore</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="SessionHandler.html" title="class in org.eclipse.jetty.server.session">SessionHandler</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#getSessionHandler()">getSessionHandler</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#initialize(org.eclipse.jetty.server.session.SessionContext)">initialize</a></span>&#8203;(<a href="SessionContext.html" title="class in org.eclipse.jetty.server.session">SessionContext</a>&nbsp;context)</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isFlushOnResponseCommit()">isFlushOnResponseCommit</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isInvalidateOnShutdown()">isInvalidateOnShutdown</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isRemoveUnloadableSessions()">isRemoveUnloadableSessions</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSaveOnCreate()">isSaveOnCreate</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#isSaveOnInactiveEviction()">isSaveOnInactiveEviction</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newSession(javax.servlet.http.HttpServletRequest,java.lang.String,long,long)">newSession</a></span>&#8203;(javax.servlet.http.HttpServletRequest&nbsp;request,
java.lang.String&nbsp;id,
long&nbsp;time,
long&nbsp;maxInactiveMs)</code></th>
<td class="colLast">
<div class="block">Create an entirely new Session.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#newSession(org.eclipse.jetty.server.session.SessionData)">newSession</a></span>&#8203;(<a href="SessionData.html" title="class in org.eclipse.jetty.server.session">SessionData</a>&nbsp;data)</code></th>
<td class="colLast">
<div class="block">Re-materialize a Session that has previously existed.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#put(java.lang.String,org.eclipse.jetty.server.session.Session)">put</a></span>&#8203;(java.lang.String&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#release(java.lang.String,org.eclipse.jetty.server.session.Session)">release</a></span>&#8203;(java.lang.String&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</code></th>
<td class="colLast">
<div class="block">Finish using a Session.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>default <a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#renewSessionId(java.lang.String,java.lang.String)">renewSessionId</a></span>&#8203;(java.lang.String&nbsp;oldId,
java.lang.String&nbsp;newId)</code></th>
<td class="colLast">
<div class="block"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">use
<a href="#renewSessionId(java.lang.String,java.lang.String,java.lang.String,java.lang.String)"><code>renewSessionId(String oldId, String newId, String oldExtendedId, String newExtendedId)</code></a></div>
</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>default <a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#renewSessionId(java.lang.String,java.lang.String,java.lang.String,java.lang.String)">renewSessionId</a></span>&#8203;(java.lang.String&nbsp;oldId,
java.lang.String&nbsp;newId,
java.lang.String&nbsp;oldExtendedId,
java.lang.String&nbsp;newExtendedId)</code></th>
<td class="colLast">
<div class="block">Change the id of a Session.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setEvictionPolicy(int)">setEvictionPolicy</a></span>&#8203;(int&nbsp;policy)</code></th>
<td class="colLast">
<div class="block">Sessions in this cache can be:
never evicted
evicted once the last request exits
evicted after a configurable period of inactivity
</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setFlushOnResponseCommit(boolean)">setFlushOnResponseCommit</a></span>&#8203;(boolean&nbsp;flushOnResponse)</code></th>
<td class="colLast">
<div class="block">If true, a dirty session will be written to the SessionDataStore
just before a response is returned to the client.</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setInvalidateOnShutdown(boolean)">setInvalidateOnShutdown</a></span>&#8203;(boolean&nbsp;invalidateOnShutdown)</code></th>
<td class="colLast">
<div class="block">If true, all existing sessions in the cache will be invalidated when
the server shuts down.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setRemoveUnloadableSessions(boolean)">setRemoveUnloadableSessions</a></span>&#8203;(boolean&nbsp;removeUnloadableSessions)</code></th>
<td class="colLast">
<div class="block">If the data for a session exists but is unreadable,
the SessionCache can instruct the SessionDataStore to delete it.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSaveOnCreate(boolean)">setSaveOnCreate</a></span>&#8203;(boolean&nbsp;saveOnCreate)</code></th>
<td class="colLast">
<div class="block">Whether or not a session that is newly created should be
immediately saved.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSaveOnInactiveEviction(boolean)">setSaveOnInactiveEviction</a></span>&#8203;(boolean&nbsp;saveOnEvict)</code></th>
<td class="colLast">
<div class="block">Whether or not a a session that is about to be evicted should
be saved before being evicted.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#setSessionDataStore(org.eclipse.jetty.server.session.SessionDataStore)">setSessionDataStore</a></span>&#8203;(<a href="SessionDataStore.html" title="interface in org.eclipse.jetty.server.session">SessionDataStore</a>&nbsp;sds)</code></th>
<td class="colLast">
<div class="block">A SessionDataStore that is the authoritative source
of session information.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#shutdown()">shutdown</a></span>()</code></th>
<td class="colLast">&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.eclipse.jetty.util.component.LifeCycle">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a></h3>
<code><a href="../../util/component/LifeCycle.html#addLifeCycleListener(org.eclipse.jetty.util.component.LifeCycle.Listener)">addLifeCycleListener</a>, <a href="../../util/component/LifeCycle.html#isFailed()">isFailed</a>, <a href="../../util/component/LifeCycle.html#isRunning()">isRunning</a>, <a href="../../util/component/LifeCycle.html#isStarted()">isStarted</a>, <a href="../../util/component/LifeCycle.html#isStarting()">isStarting</a>, <a href="../../util/component/LifeCycle.html#isStopped()">isStopped</a>, <a href="../../util/component/LifeCycle.html#isStopping()">isStopping</a>, <a href="../../util/component/LifeCycle.html#removeLifeCycleListener(org.eclipse.jetty.util.component.LifeCycle.Listener)">removeLifeCycleListener</a>, <a href="../../util/component/LifeCycle.html#start()">start</a>, <a href="../../util/component/LifeCycle.html#stop()">stop</a></code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a id="NEVER_EVICT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NEVER_EVICT</h4>
<pre>static final&nbsp;int NEVER_EVICT</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.eclipse.jetty.server.session.SessionCache.NEVER_EVICT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="EVICT_ON_SESSION_EXIT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>EVICT_ON_SESSION_EXIT</h4>
<pre>static final&nbsp;int EVICT_ON_SESSION_EXIT</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.eclipse.jetty.server.session.SessionCache.EVICT_ON_SESSION_EXIT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a id="EVICT_ON_INACTIVITY">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>EVICT_ON_INACTIVITY</h4>
<pre>static final&nbsp;int EVICT_ON_INACTIVITY</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.eclipse.jetty.server.session.SessionCache.EVICT_ON_INACTIVITY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
<!-- ============ METHOD DETAIL ========== -->
<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a id="initialize(org.eclipse.jetty.server.session.SessionContext)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initialize</h4>
<pre class="methodSignature">void&nbsp;initialize&#8203;(<a href="SessionContext.html" title="class in org.eclipse.jetty.server.session">SessionContext</a>&nbsp;context)</pre>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>context</code> - the <a href="SessionContext.html" title="class in org.eclipse.jetty.server.session"><code>SessionContext</code></a> to use for this cache</dd>
</dl>
</li>
</ul>
<a id="shutdown()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shutdown</h4>
<pre class="methodSignature">void&nbsp;shutdown()</pre>
</li>
</ul>
<a id="getSessionHandler()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSessionHandler</h4>
<pre class="methodSignature"><a href="SessionHandler.html" title="class in org.eclipse.jetty.server.session">SessionHandler</a>&nbsp;getSessionHandler()</pre>
</li>
</ul>
<a id="newSession(javax.servlet.http.HttpServletRequest,java.lang.String,long,long)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newSession</h4>
<pre class="methodSignature"><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;newSession&#8203;(javax.servlet.http.HttpServletRequest&nbsp;request,
java.lang.String&nbsp;id,
long&nbsp;time,
long&nbsp;maxInactiveMs)</pre>
<div class="block">Create an entirely new Session.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>request</code> - the request</dd>
<dd><code>id</code> - the unique id associated to the session</dd>
<dd><code>time</code> - the timestamp of the session creation</dd>
<dd><code>maxInactiveMs</code> - the max inactive time in milliseconds</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a new Session</dd>
</dl>
</li>
</ul>
<a id="newSession(org.eclipse.jetty.server.session.SessionData)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>newSession</h4>
<pre class="methodSignature"><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;newSession&#8203;(<a href="SessionData.html" title="class in org.eclipse.jetty.server.session">SessionData</a>&nbsp;data)</pre>
<div class="block">Re-materialize a Session that has previously existed.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>data</code> - the data associated with the session</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a Session object for the data supplied</dd>
</dl>
</li>
</ul>
<a id="renewSessionId(java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>renewSessionId</h4>
<pre class="methodSignature">@Deprecated
default&nbsp;<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;renewSessionId&#8203;(java.lang.String&nbsp;oldId,
java.lang.String&nbsp;newId)
throws java.lang.Exception</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span>
<div class="deprecationComment">use
<a href="#renewSessionId(java.lang.String,java.lang.String,java.lang.String,java.lang.String)"><code>renewSessionId(String oldId, String newId, String oldExtendedId, String newExtendedId)</code></a></div>
</div>
<div class="block">Change the id of a session.
This method has been superceded by the 4 arg renewSessionId method and
should no longer be called.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>oldId</code> - the old id</dd>
<dd><code>newId</code> - the new id</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the changed Session</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if anything went wrong</dd>
</dl>
</li>
</ul>
<a id="renewSessionId(java.lang.String,java.lang.String,java.lang.String,java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>renewSessionId</h4>
<pre class="methodSignature">default&nbsp;<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;renewSessionId&#8203;(java.lang.String&nbsp;oldId,
java.lang.String&nbsp;newId,
java.lang.String&nbsp;oldExtendedId,
java.lang.String&nbsp;newExtendedId)
throws java.lang.Exception</pre>
<div class="block">Change the id of a Session.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>oldId</code> - the current session id</dd>
<dd><code>newId</code> - the new session id</dd>
<dd><code>oldExtendedId</code> - the current extended session id</dd>
<dd><code>newExtendedId</code> - the new extended session id</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Session after changing its id</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if any error occurred</dd>
</dl>
</li>
</ul>
<a id="add(java.lang.String,org.eclipse.jetty.server.session.Session)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>add</h4>
<pre class="methodSignature">void&nbsp;add&#8203;(java.lang.String&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)
throws java.lang.Exception</pre>
<div class="block">Adds a new Session, with a never-before-used id,
to the cache.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - </dd>
<dd><code>session</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a id="get(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
<pre class="methodSignature"><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;get&#8203;(java.lang.String&nbsp;id)
throws java.lang.Exception</pre>
<div class="block">Get an existing Session. If necessary, the cache will load the data for
the session from the configured SessionDataStore.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the session id</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Session if one exists, null otherwise</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if any error occurred</dd>
</dl>
</li>
</ul>
<a id="put(java.lang.String,org.eclipse.jetty.server.session.Session)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>put</h4>
<pre class="methodSignature">void&nbsp;put&#8203;(java.lang.String&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)
throws java.lang.Exception</pre>
<div class="deprecationBlock"><span class="deprecatedLabel">Deprecated.</span></div>
<div class="block">Finish using a Session. This is called by the SessionHandler
once a request is finished with a Session. SessionCache
implementations may want to delay writing out Session contents
until the last request exits a Session.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the session id</dd>
<dd><code>session</code> - the current session object</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if any error occurred</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="#release(java.lang.String,org.eclipse.jetty.server.session.Session)"><code>release(java.lang.String,org.eclipse.jetty.server.session.Session)</code></a></dd>
</dl>
</li>
</ul>
<a id="release(java.lang.String,org.eclipse.jetty.server.session.Session)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>release</h4>
<pre class="methodSignature">void&nbsp;release&#8203;(java.lang.String&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)
throws java.lang.Exception</pre>
<div class="block">Finish using a Session. This is called by the SessionHandler
once a request is finished with a Session. SessionCache
implementations may want to delay writing out Session contents
until the last request exits a Session.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the session id</dd>
<dd><code>session</code> - the current session object</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if any error occurred</dd>
</dl>
</li>
</ul>
<a id="commit(org.eclipse.jetty.server.session.Session)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>commit</h4>
<pre class="methodSignature">void&nbsp;commit&#8203;(<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)
throws java.lang.Exception</pre>
<div class="block">Called when a response is about to be committed. The
cache can write the session to ensure that the
SessionDataStore contains changes to the session
that occurred during the lifetime of the request. This
can help ensure that if a subsequent request goes to a
different server, it will be able to see the session
changes via the shared store.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code></dd>
</dl>
</li>
</ul>
<a id="contains(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>contains</h4>
<pre class="methodSignature">boolean&nbsp;contains&#8203;(java.lang.String&nbsp;id)
throws java.lang.Exception</pre>
<div class="block">Check to see if a Session is in the cache. Does NOT consult
the SessionDataStore.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the session id</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if a Session object matching the id is present
in the cache, false otherwise</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if any error occurred</dd>
</dl>
</li>
</ul>
<a id="exists(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>exists</h4>
<pre class="methodSignature">boolean&nbsp;exists&#8203;(java.lang.String&nbsp;id)
throws java.lang.Exception</pre>
<div class="block">Check to see if a session exists: WILL consult the
SessionDataStore.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the session id</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the session exists, false otherwise</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if any error occurred</dd>
</dl>
</li>
</ul>
<a id="delete(java.lang.String)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>delete</h4>
<pre class="methodSignature"><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;delete&#8203;(java.lang.String&nbsp;id)
throws java.lang.Exception</pre>
<div class="block">Remove a Session completely: from both this
cache and the SessionDataStore.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>id</code> - the session id</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the Session that was removed, null otherwise</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.Exception</code> - if any error occurred</dd>
</dl>
</li>
</ul>
<a id="checkExpiration(java.util.Set)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkExpiration</h4>
<pre class="methodSignature">java.util.Set&lt;java.lang.String&gt;&nbsp;checkExpiration&#8203;(java.util.Set&lt;java.lang.String&gt;&nbsp;candidates)</pre>
<div class="block">Check a list of session ids that belong to potentially expired
sessions. The Session in the cache should be checked,
but also the SessionDataStore, as that is the authoritative
source of all session information.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>candidates</code> - the session ids to check</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the set of session ids that have actually expired: this can
be a superset of the original candidate list.</dd>
</dl>
</li>
</ul>
<a id="checkInactiveSession(org.eclipse.jetty.server.session.Session)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkInactiveSession</h4>
<pre class="methodSignature">void&nbsp;checkInactiveSession&#8203;(<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</pre>
<div class="block">Check a Session to see if it might be appropriate to
evict or expire.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>session</code> - the session to check</dd>
</dl>
</li>
</ul>
<a id="setSessionDataStore(org.eclipse.jetty.server.session.SessionDataStore)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSessionDataStore</h4>
<pre class="methodSignature">void&nbsp;setSessionDataStore&#8203;(<a href="SessionDataStore.html" title="interface in org.eclipse.jetty.server.session">SessionDataStore</a>&nbsp;sds)</pre>
<div class="block">A SessionDataStore that is the authoritative source
of session information.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>sds</code> - the <a href="SessionDataStore.html" title="interface in org.eclipse.jetty.server.session"><code>SessionDataStore</code></a> to use</dd>
</dl>
</li>
</ul>
<a id="getSessionDataStore()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSessionDataStore</h4>
<pre class="methodSignature"><a href="SessionDataStore.html" title="interface in org.eclipse.jetty.server.session">SessionDataStore</a>&nbsp;getSessionDataStore()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <a href="SessionDataStore.html" title="interface in org.eclipse.jetty.server.session"><code>SessionDataStore</code></a> used</dd>
</dl>
</li>
</ul>
<a id="setEvictionPolicy(int)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEvictionPolicy</h4>
<pre class="methodSignature">void&nbsp;setEvictionPolicy&#8203;(int&nbsp;policy)</pre>
<div class="block">Sessions in this cache can be:
<ul>
<li>never evicted</li>
<li>evicted once the last request exits</li>
<li>evicted after a configurable period of inactivity</li>
</ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>policy</code> - -1 is never evict; 0 is evict-on-exit; and any other positive
value is the time in seconds that a session can be idle before it can
be evicted.</dd>
</dl>
</li>
</ul>
<a id="getEvictionPolicy()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEvictionPolicy</h4>
<pre class="methodSignature">int&nbsp;getEvictionPolicy()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the eviction policy</dd>
</dl>
</li>
</ul>
<a id="setSaveOnInactiveEviction(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSaveOnInactiveEviction</h4>
<pre class="methodSignature">void&nbsp;setSaveOnInactiveEviction&#8203;(boolean&nbsp;saveOnEvict)</pre>
<div class="block">Whether or not a a session that is about to be evicted should
be saved before being evicted.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>saveOnEvict</code> - <code>true</code> if the session should be saved before being evicted</dd>
</dl>
</li>
</ul>
<a id="isSaveOnInactiveEviction()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSaveOnInactiveEviction</h4>
<pre class="methodSignature">boolean&nbsp;isSaveOnInactiveEviction()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the session should be saved before being evicted</dd>
</dl>
</li>
</ul>
<a id="setSaveOnCreate(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setSaveOnCreate</h4>
<pre class="methodSignature">void&nbsp;setSaveOnCreate&#8203;(boolean&nbsp;saveOnCreate)</pre>
<div class="block">Whether or not a session that is newly created should be
immediately saved. If false, a session that is created and
invalidated within a single request is never persisted.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>saveOnCreate</code> - <code>true</code> to immediately save the newly created session</dd>
</dl>
</li>
</ul>
<a id="isSaveOnCreate()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isSaveOnCreate</h4>
<pre class="methodSignature">boolean&nbsp;isSaveOnCreate()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>if <code>true</code> the newly created session will be saved immediately</dd>
</dl>
</li>
</ul>
<a id="setRemoveUnloadableSessions(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setRemoveUnloadableSessions</h4>
<pre class="methodSignature">void&nbsp;setRemoveUnloadableSessions&#8203;(boolean&nbsp;removeUnloadableSessions)</pre>
<div class="block">If the data for a session exists but is unreadable,
the SessionCache can instruct the SessionDataStore to delete it.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>removeUnloadableSessions</code> - <code>true</code> to delete session which cannot be loaded</dd>
</dl>
</li>
</ul>
<a id="isRemoveUnloadableSessions()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRemoveUnloadableSessions</h4>
<pre class="methodSignature">boolean&nbsp;isRemoveUnloadableSessions()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>if <code>true</code> unloadable session will be deleted</dd>
</dl>
</li>
</ul>
<a id="setFlushOnResponseCommit(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFlushOnResponseCommit</h4>
<pre class="methodSignature">void&nbsp;setFlushOnResponseCommit&#8203;(boolean&nbsp;flushOnResponse)</pre>
<div class="block">If true, a dirty session will be written to the SessionDataStore
just before a response is returned to the client. This ensures
that subsequent requests to either the same node or a different
node see the changed session data.</div>
</li>
</ul>
<a id="isFlushOnResponseCommit()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isFlushOnResponseCommit</h4>
<pre class="methodSignature">boolean&nbsp;isFlushOnResponseCommit()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if dirty sessions should be written
before the response is committed.</dd>
</dl>
</li>
</ul>
<a id="setInvalidateOnShutdown(boolean)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setInvalidateOnShutdown</h4>
<pre class="methodSignature">void&nbsp;setInvalidateOnShutdown&#8203;(boolean&nbsp;invalidateOnShutdown)</pre>
<div class="block">If true, all existing sessions in the cache will be invalidated when
the server shuts down. Default is false.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>invalidateOnShutdown</code> - </dd>
</dl>
</li>
</ul>
<a id="isInvalidateOnShutdown()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isInvalidateOnShutdown</h4>
<pre class="methodSignature">boolean&nbsp;isInvalidateOnShutdown()</pre>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>
<!-- ========= END OF CLASS DATA ========= -->
<footer role="contentinfo">
<nav role="navigation">
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a id="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/SessionCache.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</nav>
<p class="legalCopy"><small>Copyright &#169; 1995&#x2013;2021 <a href="https://webtide.com">Webtide</a>. All rights reserved.</small></p>
</footer>
</body>
</html>