blob: 285e05cb0e330315ec76458c5e16a660b9ec3b91 [file] [log] [blame]
<!DOCTYPE HTML>
<html lang="en">
<head>
<!-- Generated by javadoc (17) on Thu Sep 15 14:13:16 CDT 2022 -->
<title>AbstractSessionCache (Eclipse Jetty API Doc - v11.0.12)</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2022-09-15">
<meta name="description" content="declaration: package: org.eclipse.jetty.server.session, class: AbstractSessionCache">
<meta name="generator" content="javadoc/ClassWriterImpl">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../script-dir/jquery-ui.min.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../jquery-ui.overrides.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="../../../../../script-dir/jquery-ui.min.js"></script>
</head>
<body class="class-declaration-page">
<script type="text/javascript">var evenRowColor = "even-row-color";
var oddRowColor = "odd-row-color";
var tableTab = "table-tab";
var activeTableTab = "active-table-tab";
var pathtoroot = "../../../../../";
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<div class="flex-box">
<header role="banner" class="flex-header">
<nav role="navigation">
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="top-nav" id="navbar-top">
<div class="skip-nav"><a href="#skip-navbar-top" title="Skip navigation links">Skip navigation links</a></div>
<ul id="navbar-top-firstrow" class="nav-list" title="Navigation">
<li><a href="../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="nav-bar-cell1-rev">Class</li>
<li><a href="class-use/AbstractSessionCache.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#class">Help</a></li>
</ul>
</div>
<div class="sub-nav">
<div>
<ul class="sub-nav-list">
<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><a href="#constructor-summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-summary">Method</a></li>
</ul>
<ul class="sub-nav-list">
<li>Detail:&nbsp;</li>
<li><a href="#field-detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor-detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method-detail">Method</a></li>
</ul>
</div>
<div class="nav-list-search"><label for="search-input">SEARCH:</label>
<input type="text" id="search-input" value="search" disabled="disabled">
<input type="reset" id="reset-button" value="reset" disabled="disabled">
</div>
</div>
<!-- ========= END OF TOP NAVBAR ========= -->
<span class="skip-nav" id="skip-navbar-top"></span></nav>
</header>
<div class="flex-content">
<main role="main">
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="sub-title"><span class="package-label-in-type">Package</span>&nbsp;<a href="package-summary.html">org.eclipse.jetty.server.session</a></div>
<h1 title="Class AbstractSessionCache" class="title">Class AbstractSessionCache</h1>
</div>
<div class="inheritance" title="Inheritance Tree"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">java.lang.Object</a>
<div class="inheritance"><a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">org.eclipse.jetty.util.component.AbstractLifeCycle</a>
<div class="inheritance"><a href="../../util/component/ContainerLifeCycle.html" title="class in org.eclipse.jetty.util.component">org.eclipse.jetty.util.component.ContainerLifeCycle</a>
<div class="inheritance">org.eclipse.jetty.server.session.AbstractSessionCache</div>
</div>
</div>
</div>
<section class="class-description" id="class-description">
<dl class="notes">
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code>, <code><a href="../../util/component/Container.html" title="interface in org.eclipse.jetty.util.component">Container</a></code>, <code><a href="../../util/component/Destroyable.html" title="interface in org.eclipse.jetty.util.component">Destroyable</a></code>, <code><a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></code>, <code><a href="../../util/component/Dumpable.DumpableContainer.html" title="interface in org.eclipse.jetty.util.component">Dumpable.DumpableContainer</a></code>, <code><a href="../../util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a></code></dd>
</dl>
<dl class="notes">
<dt>Direct Known Subclasses:</dt>
<dd><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>
<div class="type-signature"><span class="annotations"><a href="../../util/annotation/ManagedObject.html" title="annotation in org.eclipse.jetty.util.annotation">@ManagedObject</a>
</span><span class="modifiers">public abstract class </span><span class="element-name type-name-label">AbstractSessionCache</span>
<span class="extends-implements">extends <a href="../../util/component/ContainerLifeCycle.html" title="class in org.eclipse.jetty.util.component">ContainerLifeCycle</a>
implements <a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></span></div>
<div class="block">AbstractSessionCache
A base implementation of the <a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session"><code>SessionCache</code></a> interface for managing a set of
Session objects pertaining to a context in memory.
This implementation ensures that multiple requests for the same session id
always return the same Session object.
It will delay writing out a session to the SessionDataStore until the
last request exits the session. If the SessionDataStore supports passivation
then the session passivation and activation listeners are called appropriately as
the session is written.
This implementation also supports evicting idle Session objects. An idle Session
is one that is still valid, has not expired, but has not been accessed by a
request for a configurable amount of time. An idle session will be first
passivated before it is evicted from the cache.</div>
</section>
<section class="summary">
<ul class="summary-list">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<li>
<section class="nested-class-summary" id="nested-class-summary">
<h2>Nested Class Summary</h2>
<div class="inherited-list">
<h2 id="nested-classes-inherited-from-class-org.eclipse.jetty.util.component.AbstractLifeCycle">Nested classes/interfaces inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h2>
<code><a href="../../util/component/AbstractLifeCycle.AbstractLifeCycleListener.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle.AbstractLifeCycleListener</a>, <a href="../../util/component/AbstractLifeCycle.StopException.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle.StopException</a></code></div>
<div class="inherited-list">
<h2 id="nested-classes-inherited-from-class-org.eclipse.jetty.util.component.Container">Nested classes/interfaces inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Container.html" title="interface in org.eclipse.jetty.util.component">Container</a></h2>
<code><a href="../../util/component/Container.InheritedListener.html" title="interface in org.eclipse.jetty.util.component">Container.InheritedListener</a>, <a href="../../util/component/Container.Listener.html" title="interface in org.eclipse.jetty.util.component">Container.Listener</a></code></div>
<div class="inherited-list">
<h2 id="nested-classes-inherited-from-class-org.eclipse.jetty.util.component.Dumpable">Nested classes/interfaces inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></h2>
<code><a href="../../util/component/Dumpable.DumpableContainer.html" title="interface in org.eclipse.jetty.util.component">Dumpable.DumpableContainer</a></code></div>
<div class="inherited-list">
<h2 id="nested-classes-inherited-from-class-org.eclipse.jetty.util.component.LifeCycle">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></h2>
<code><a href="../../util/component/LifeCycle.Listener.html" title="interface in org.eclipse.jetty.util.component">LifeCycle.Listener</a></code></div>
</section>
</li>
<!-- =========== FIELD SUMMARY =========== -->
<li>
<section class="field-summary" id="field-summary">
<h2>Field Summary</h2>
<div class="caption"><span>Fields</span></div>
<div class="summary-table three-column-summary">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Field</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color"><code>protected <a href="SessionContext.html" title="class in org.eclipse.jetty.server.session">SessionContext</a></code></div>
<div class="col-second even-row-color"><code><a href="#_context" class="member-name-link">_context</a></code></div>
<div class="col-last even-row-color">
<div class="block">Information about the context to which this SessionCache pertains</div>
</div>
<div class="col-first odd-row-color"><code>protected int</code></div>
<div class="col-second odd-row-color"><code><a href="#_evictionPolicy" class="member-name-link">_evictionPolicy</a></code></div>
<div class="col-last odd-row-color">
<div class="block">When, if ever, to evict sessions: never; only when the last request for them finishes; after inactivity time (expressed as secs)</div>
</div>
<div class="col-first even-row-color"><code>protected boolean</code></div>
<div class="col-second even-row-color"><code><a href="#_flushOnResponseCommit" class="member-name-link">_flushOnResponseCommit</a></code></div>
<div class="col-last even-row-color">
<div class="block">If true, when a response is about to be committed back to the client,
a dirty session will be flushed to the session store.</div>
</div>
<div class="col-first odd-row-color"><code>protected final <a href="SessionHandler.html" title="class in org.eclipse.jetty.server.session">SessionHandler</a></code></div>
<div class="col-second odd-row-color"><code><a href="#_handler" class="member-name-link">_handler</a></code></div>
<div class="col-last odd-row-color">
<div class="block">The SessionHandler related to this SessionCache</div>
</div>
<div class="col-first even-row-color"><code>protected boolean</code></div>
<div class="col-second even-row-color"><code><a href="#_invalidateOnShutdown" class="member-name-link">_invalidateOnShutdown</a></code></div>
<div class="col-last even-row-color">
<div class="block">If true, when the server shuts down, all sessions in the
cache will be invalidated before being removed.</div>
</div>
<div class="col-first odd-row-color"><code>protected boolean</code></div>
<div class="col-second odd-row-color"><code><a href="#_removeUnloadableSessions" class="member-name-link">_removeUnloadableSessions</a></code></div>
<div class="col-last odd-row-color">
<div class="block">If true, a Session whose data cannot be read will be
deleted from the SessionDataStore.</div>
</div>
<div class="col-first even-row-color"><code>protected boolean</code></div>
<div class="col-second even-row-color"><code><a href="#_saveOnCreate" class="member-name-link">_saveOnCreate</a></code></div>
<div class="col-last even-row-color">
<div class="block">If true, as soon as a new session is created, it will be persisted to the SessionDataStore</div>
</div>
<div class="col-first odd-row-color"><code>protected boolean</code></div>
<div class="col-second odd-row-color"><code><a href="#_saveOnInactiveEviction" class="member-name-link">_saveOnInactiveEviction</a></code></div>
<div class="col-last odd-row-color">
<div class="block">If true, a session that will be evicted from the cache because it has been
inactive too long will be saved before being evicted.</div>
</div>
<div class="col-first even-row-color"><code>protected <a href="SessionDataStore.html" title="interface in org.eclipse.jetty.server.session">SessionDataStore</a></code></div>
<div class="col-second even-row-color"><code><a href="#_sessionDataStore" class="member-name-link">_sessionDataStore</a></code></div>
<div class="col-last even-row-color">
<div class="block">The authoritative source of session data</div>
</div>
</div>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-org.eclipse.jetty.util.component.AbstractLifeCycle">Fields inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h3>
<code><a href="../../util/component/AbstractLifeCycle.html#FAILED">FAILED</a>, <a href="../../util/component/AbstractLifeCycle.html#STARTED">STARTED</a>, <a href="../../util/component/AbstractLifeCycle.html#STARTING">STARTING</a>, <a href="../../util/component/AbstractLifeCycle.html#STOPPED">STOPPED</a>, <a href="../../util/component/AbstractLifeCycle.html#STOPPING">STOPPING</a></code></div>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-org.eclipse.jetty.util.component.Dumpable">Fields inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></h3>
<code><a href="../../util/component/Dumpable.html#KEY">KEY</a></code></div>
<div class="inherited-list">
<h3 id="fields-inherited-from-class-org.eclipse.jetty.server.session.SessionCache">Fields inherited from interface&nbsp;org.eclipse.jetty.server.session.<a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></h3>
<code><a href="SessionCache.html#EVICT_ON_INACTIVITY">EVICT_ON_INACTIVITY</a>, <a href="SessionCache.html#EVICT_ON_SESSION_EXIT">EVICT_ON_SESSION_EXIT</a>, <a href="SessionCache.html#NEVER_EVICT">NEVER_EVICT</a></code></div>
</section>
</li>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<li>
<section class="constructor-summary" id="constructor-summary">
<h2>Constructor Summary</h2>
<div class="caption"><span>Constructors</span></div>
<div class="summary-table two-column-summary">
<div class="table-header col-first">Constructor</div>
<div class="table-header col-last">Description</div>
<div class="col-constructor-name even-row-color"><code><a href="#%3Cinit%3E(org.eclipse.jetty.server.session.SessionHandler)" class="member-name-link">AbstractSessionCache</a><wbr>(<a href="SessionHandler.html" title="class in org.eclipse.jetty.server.session">SessionHandler</a>&nbsp;handler)</code></div>
<div class="col-last even-row-color">&nbsp;</div>
</div>
</section>
</li>
<!-- ========== METHOD SUMMARY =========== -->
<li>
<section class="method-summary" id="method-summary">
<h2>Method Summary</h2>
<div id="method-summary-table">
<div class="table-tabs" role="tablist" aria-orientation="horizontal"><button id="method-summary-table-tab0" role="tab" aria-selected="true" aria-controls="method-summary-table.tabpanel" tabindex="0" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table', 3)" class="active-table-tab">All Methods</button><button id="method-summary-table-tab2" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab2', 3)" class="table-tab">Instance Methods</button><button id="method-summary-table-tab3" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab3', 3)" class="table-tab">Abstract Methods</button><button id="method-summary-table-tab4" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab4', 3)" class="table-tab">Concrete Methods</button><button id="method-summary-table-tab6" role="tab" aria-selected="false" aria-controls="method-summary-table.tabpanel" tabindex="-1" onkeydown="switchTab(event)" onclick="show('method-summary-table', 'method-summary-table-tab6', 3)" class="table-tab">Deprecated Methods</button></div>
<div id="method-summary-table.tabpanel" role="tabpanel">
<div class="summary-table three-column-summary" aria-labelledby="method-summary-table-tab0">
<div class="table-header col-first">Modifier and Type</div>
<div class="table-header col-second">Method</div>
<div class="table-header col-last">Description</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#add(java.lang.String,org.eclipse.jetty.server.session.Session)" class="member-name-link">add</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Add an entirely new session (created by the application calling Request.getSession(true))
to the cache.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#checkExpiration(java.util.Set)" class="member-name-link">checkExpiration</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;&nbsp;candidates)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Check a list of session ids that belong to potentially expired
sessions.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#checkInactiveSession(org.eclipse.jetty.server.session.Session)" class="member-name-link">checkInactiveSession</a><wbr>(<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Check a session for being inactive and
thus being able to be evicted, if eviction
is enabled.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#commit(org.eclipse.jetty.server.session.Session)" class="member-name-link">commit</a><wbr>(<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">A response that has accessed this session is about to
be returned to the client.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#contains(java.lang.String)" class="member-name-link">contains</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Check to see if this cache contains an entry for the session
corresponding to the session id.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#delete(java.lang.String)" class="member-name-link">delete</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Remove a session object from this store and from any backing store.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>protected abstract <a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#doComputeIfAbsent(java.lang.String,java.util.function.Function)" class="member-name-link">doComputeIfAbsent</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/function/Function.html" title="class or interface in java.util.function" class="external-link">Function</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&gt;&nbsp;mappingFunction)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Compute the mappingFunction to create a Session object iff the session
with the given id isn't already in the map, otherwise return the existing Session.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract <a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#doDelete(java.lang.String)" class="member-name-link">doDelete</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Remove the session with this identity from the store</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>protected abstract <a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#doGet(java.lang.String)" class="member-name-link">doGet</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Get the session matching the key from the cache.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>protected abstract <a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#doPutIfAbsent(java.lang.String,org.eclipse.jetty.server.session.Session)" class="member-name-link">doPutIfAbsent</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Put the session into the map if it wasn't already there</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>protected abstract boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#doReplace(java.lang.String,org.eclipse.jetty.server.session.Session,org.eclipse.jetty.server.session.Session)" class="member-name-link">doReplace</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;oldValue,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;newValue)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Replace the mapping from id to oldValue with newValue</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#doStart()" class="member-name-link">doStart</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Starts the managed lifecycle beans in the order they were added.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#doStop()" class="member-name-link">doStop</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Stops the managed lifecycle beans in the reverse order they were added.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#exists(java.lang.String)" class="member-name-link">exists</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Check to see if a session corresponding to the id exists.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#get(java.lang.String)" class="member-name-link">get</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Get a session object.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected <a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getAndEnter(java.lang.String,boolean)" class="member-name-link">getAndEnter</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
boolean&nbsp;enter)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Get a session object.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>int</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getEvictionPolicy()" class="member-name-link">getEvictionPolicy</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SessionDataStore.html" title="interface in org.eclipse.jetty.server.session">SessionDataStore</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getSessionDataStore()" class="member-name-link">getSessionDataStore</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="SessionHandler.html" title="class in org.eclipse.jetty.server.session">SessionHandler</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#getSessionHandler()" class="member-name-link">getSessionHandler</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#initialize(org.eclipse.jetty.server.session.SessionContext)" class="member-name-link">initialize</a><wbr>(<a href="SessionContext.html" title="class in org.eclipse.jetty.server.session">SessionContext</a>&nbsp;context)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isFlushOnResponseCommit()" class="member-name-link">isFlushOnResponseCommit</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isInvalidateOnShutdown()" class="member-name-link">isInvalidateOnShutdown</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isRemoveUnloadableSessions()" class="member-name-link">isRemoveUnloadableSessions</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isSaveOnCreate()" class="member-name-link">isSaveOnCreate</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>boolean</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#isSaveOnInactiveEviction()" class="member-name-link">isSaveOnInactiveEviction</a>()</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether we should save a session that has been inactive before
we boot it from the cache.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#newSession(jakarta.servlet.http.HttpServletRequest,java.lang.String,long,long)" class="member-name-link">newSession</a><wbr>(jakarta.servlet.http.HttpServletRequest&nbsp;request,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
long&nbsp;time,
long&nbsp;maxInactiveMs)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Create an entirely new Session.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract <a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#newSession(jakarta.servlet.http.HttpServletRequest,org.eclipse.jetty.server.session.SessionData)" class="member-name-link">newSession</a><wbr>(jakarta.servlet.http.HttpServletRequest&nbsp;request,
<a href="SessionData.html" title="class in org.eclipse.jetty.server.session">SessionData</a>&nbsp;data)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Create a new Session for a request.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code>abstract <a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3"><code><a href="#newSession(org.eclipse.jetty.server.session.SessionData)" class="member-name-link">newSession</a><wbr>(<a href="SessionData.html" title="class in org.eclipse.jetty.server.session">SessionData</a>&nbsp;data)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab3">
<div class="block">Create a new Session object from pre-existing session data</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6"><code><a href="#put(java.lang.String,org.eclipse.jetty.server.session.Session)" class="member-name-link">put</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4 method-summary-table-tab6">
<div class="block"><span class="deprecated-label">Deprecated.</span>
<div class="deprecation-comment">use <a href="#release(java.lang.String,org.eclipse.jetty.server.session.Session)"><code>release(String, Session)</code></a> instead</div>
</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#release(java.lang.String,org.eclipse.jetty.server.session.Session)" class="member-name-link">release</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Finish using the Session object.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#renewSessionId(java.lang.String,java.lang.String,java.lang.String,java.lang.String)" class="member-name-link">renewSessionId</a><wbr>(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;oldId,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;newId,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;oldExtendedId,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;newExtendedId)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Change the id of a Session.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>protected void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#renewSessionId(org.eclipse.jetty.server.session.Session,java.lang.String,java.lang.String)" class="member-name-link">renewSessionId</a><wbr>(<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;newId,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;newExtendedId)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Swap the id on a session.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setEvictionPolicy(int)" class="member-name-link">setEvictionPolicy</a><wbr>(int&nbsp;evictionTimeout)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">-1 means we never evict inactive sessions.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setFlushOnResponseCommit(boolean)" class="member-name-link">setFlushOnResponseCommit</a><wbr>(boolean&nbsp;flushOnResponseCommit)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">If true, a dirty session will be written to the SessionDataStore
just before a response is returned to the client.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setInvalidateOnShutdown(boolean)" class="member-name-link">setInvalidateOnShutdown</a><wbr>(boolean&nbsp;invalidateOnShutdown)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">If true, all existing sessions in the cache will be invalidated when
the server shuts down.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setRemoveUnloadableSessions(boolean)" class="member-name-link">setRemoveUnloadableSessions</a><wbr>(boolean&nbsp;removeUnloadableSessions)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">If a session's data cannot be loaded from the store without error, remove
it from the persistent store.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setSaveOnCreate(boolean)" class="member-name-link">setSaveOnCreate</a><wbr>(boolean&nbsp;saveOnCreate)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether or not a session that is newly created should be
immediately saved.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setSaveOnInactiveEviction(boolean)" class="member-name-link">setSaveOnInactiveEviction</a><wbr>(boolean&nbsp;saveOnEvict)</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">Whether or not a a session that is about to be evicted should
be saved before being evicted.</div>
</div>
<div class="col-first even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code>void</code></div>
<div class="col-second even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#setSessionDataStore(org.eclipse.jetty.server.session.SessionDataStore)" class="member-name-link">setSessionDataStore</a><wbr>(<a href="SessionDataStore.html" title="interface in org.eclipse.jetty.server.session">SessionDataStore</a>&nbsp;sessionStore)</code></div>
<div class="col-last even-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">
<div class="block">A SessionDataStore that is the authoritative source
of session information.</div>
</div>
<div class="col-first odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></code></div>
<div class="col-second odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4"><code><a href="#toString()" class="member-name-link">toString</a>()</code></div>
<div class="col-last odd-row-color method-summary-table method-summary-table-tab2 method-summary-table-tab4">&nbsp;</div>
</div>
</div>
</div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.eclipse.jetty.util.component.ContainerLifeCycle">Methods inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/ContainerLifeCycle.html" title="class in org.eclipse.jetty.util.component">ContainerLifeCycle</a></h3>
<code><a href="../../util/component/ContainerLifeCycle.html#addBean(java.lang.Object)">addBean</a>, <a href="../../util/component/ContainerLifeCycle.html#addBean(java.lang.Object,boolean)">addBean</a>, <a href="../../util/component/ContainerLifeCycle.html#addEventListener(java.util.EventListener)">addEventListener</a>, <a href="../../util/component/ContainerLifeCycle.html#addManaged(org.eclipse.jetty.util.component.LifeCycle)">addManaged</a>, <a href="../../util/component/ContainerLifeCycle.html#contains(java.lang.Object)">contains</a>, <a href="../../util/component/ContainerLifeCycle.html#destroy()">destroy</a>, <a href="../../util/component/ContainerLifeCycle.html#dump()">dump</a>, <a href="../../util/component/ContainerLifeCycle.html#dump(java.lang.Appendable)">dump</a>, <a href="../../util/component/ContainerLifeCycle.html#dump(java.lang.Appendable,java.lang.String)">dump</a>, <a href="../../util/component/ContainerLifeCycle.html#dumpObjects(java.lang.Appendable,java.lang.String,java.lang.Object...)">dumpObjects</a>, <a href="../../util/component/ContainerLifeCycle.html#dumpStdErr()">dumpStdErr</a>, <a href="../../util/component/ContainerLifeCycle.html#getBean(java.lang.Class)">getBean</a>, <a href="../../util/component/ContainerLifeCycle.html#getBeans()">getBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#getBeans(java.lang.Class)">getBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#getContainedBeans(java.lang.Class)">getContainedBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#getContainedBeans(java.lang.Class,java.util.Collection)">getContainedBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#isAuto(java.lang.Object)">isAuto</a>, <a href="../../util/component/ContainerLifeCycle.html#isManaged(java.lang.Object)">isManaged</a>, <a href="../../util/component/ContainerLifeCycle.html#isUnmanaged(java.lang.Object)">isUnmanaged</a>, <a href="../../util/component/ContainerLifeCycle.html#manage(java.lang.Object)">manage</a>, <a href="../../util/component/ContainerLifeCycle.html#removeBean(java.lang.Object)">removeBean</a>, <a href="../../util/component/ContainerLifeCycle.html#removeBeans()">removeBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#removeEventListener(java.util.EventListener)">removeEventListener</a>, <a href="../../util/component/ContainerLifeCycle.html#setBeans(java.util.Collection)">setBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#start(org.eclipse.jetty.util.component.LifeCycle)">start</a>, <a href="../../util/component/ContainerLifeCycle.html#stop(org.eclipse.jetty.util.component.LifeCycle)">stop</a>, <a href="../../util/component/ContainerLifeCycle.html#unmanage(java.lang.Object)">unmanage</a>, <a href="../../util/component/ContainerLifeCycle.html#updateBean(java.lang.Object,java.lang.Object)">updateBean</a>, <a href="../../util/component/ContainerLifeCycle.html#updateBean(java.lang.Object,java.lang.Object,boolean)">updateBean</a>, <a href="../../util/component/ContainerLifeCycle.html#updateBeans(java.lang.Object%5B%5D,java.lang.Object%5B%5D)">updateBeans</a>, <a href="../../util/component/ContainerLifeCycle.html#updateBeans(java.util.Collection,java.util.Collection)">updateBeans</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.eclipse.jetty.util.component.AbstractLifeCycle">Methods inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h3>
<code><a href="../../util/component/AbstractLifeCycle.html#getEventListeners()">getEventListeners</a>, <a href="../../util/component/AbstractLifeCycle.html#getState()">getState</a>, <a href="../../util/component/AbstractLifeCycle.html#getState(org.eclipse.jetty.util.component.LifeCycle)">getState</a>, <a href="../../util/component/AbstractLifeCycle.html#isFailed()">isFailed</a>, <a href="../../util/component/AbstractLifeCycle.html#isRunning()">isRunning</a>, <a href="../../util/component/AbstractLifeCycle.html#isStarted()">isStarted</a>, <a href="../../util/component/AbstractLifeCycle.html#isStarting()">isStarting</a>, <a href="../../util/component/AbstractLifeCycle.html#isStopped()">isStopped</a>, <a href="../../util/component/AbstractLifeCycle.html#isStopping()">isStopping</a>, <a href="../../util/component/AbstractLifeCycle.html#setEventListeners(java.util.Collection)">setEventListeners</a>, <a href="../../util/component/AbstractLifeCycle.html#start()">start</a>, <a href="../../util/component/AbstractLifeCycle.html#stop()">stop</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-java.lang.Object">Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html" title="class or interface in java.lang" class="external-link">Object</a></h3>
<code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#clone()" title="class or interface in java.lang" class="external-link">clone</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#equals(java.lang.Object)" title="class or interface in java.lang" class="external-link">equals</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#finalize()" title="class or interface in java.lang" class="external-link">finalize</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#getClass()" title="class or interface in java.lang" class="external-link">getClass</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#hashCode()" title="class or interface in java.lang" class="external-link">hashCode</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notify()" title="class or interface in java.lang" class="external-link">notify</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#notifyAll()" title="class or interface in java.lang" class="external-link">notifyAll</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait()" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long)" title="class or interface in java.lang" class="external-link">wait</a>, <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Object.html#wait(long,int)" title="class or interface in java.lang" class="external-link">wait</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.eclipse.jetty.util.component.Container">Methods inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Container.html" title="interface in org.eclipse.jetty.util.component">Container</a></h3>
<code><a href="../../util/component/Container.html#getCachedBeans(java.lang.Class)">getCachedBeans</a>, <a href="../../util/component/Container.html#getEventListeners()">getEventListeners</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.eclipse.jetty.util.component.Dumpable">Methods inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.html" title="interface in org.eclipse.jetty.util.component">Dumpable</a></h3>
<code><a href="../../util/component/Dumpable.html#dumpSelf()">dumpSelf</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.eclipse.jetty.util.component.Dumpable.DumpableContainer">Methods inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../util/component/Dumpable.DumpableContainer.html" title="interface in org.eclipse.jetty.util.component">Dumpable.DumpableContainer</a></h3>
<code><a href="../../util/component/Dumpable.DumpableContainer.html#isDumpable(java.lang.Object)">isDumpable</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.eclipse.jetty.util.component.LifeCycle">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#addEventListener(java.util.EventListener)">addEventListener</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#removeEventListener(java.util.EventListener)">removeEventListener</a>, <a href="../../util/component/LifeCycle.html#start()">start</a>, <a href="../../util/component/LifeCycle.html#stop()">stop</a></code></div>
<div class="inherited-list">
<h3 id="methods-inherited-from-class-org.eclipse.jetty.server.session.SessionCache">Methods inherited from interface&nbsp;org.eclipse.jetty.server.session.<a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></h3>
<code><a href="SessionCache.html#shutdown()">shutdown</a></code></div>
</section>
</li>
</ul>
</section>
<section class="details">
<ul class="details-list">
<!-- ============ FIELD DETAIL =========== -->
<li>
<section class="field-details" id="field-detail">
<h2>Field Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="_sessionDataStore">
<h3>_sessionDataStore</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="SessionDataStore.html" title="interface in org.eclipse.jetty.server.session">SessionDataStore</a></span>&nbsp;<span class="element-name">_sessionDataStore</span></div>
<div class="block">The authoritative source of session data</div>
</section>
</li>
<li>
<section class="detail" id="_handler">
<h3>_handler</h3>
<div class="member-signature"><span class="modifiers">protected final</span>&nbsp;<span class="return-type"><a href="SessionHandler.html" title="class in org.eclipse.jetty.server.session">SessionHandler</a></span>&nbsp;<span class="element-name">_handler</span></div>
<div class="block">The SessionHandler related to this SessionCache</div>
</section>
</li>
<li>
<section class="detail" id="_context">
<h3>_context</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="SessionContext.html" title="class in org.eclipse.jetty.server.session">SessionContext</a></span>&nbsp;<span class="element-name">_context</span></div>
<div class="block">Information about the context to which this SessionCache pertains</div>
</section>
</li>
<li>
<section class="detail" id="_evictionPolicy">
<h3>_evictionPolicy</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">_evictionPolicy</span></div>
<div class="block">When, if ever, to evict sessions: never; only when the last request for them finishes; after inactivity time (expressed as secs)</div>
</section>
</li>
<li>
<section class="detail" id="_saveOnCreate">
<h3>_saveOnCreate</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">_saveOnCreate</span></div>
<div class="block">If true, as soon as a new session is created, it will be persisted to the SessionDataStore</div>
</section>
</li>
<li>
<section class="detail" id="_saveOnInactiveEviction">
<h3>_saveOnInactiveEviction</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">_saveOnInactiveEviction</span></div>
<div class="block">If true, a session that will be evicted from the cache because it has been
inactive too long will be saved before being evicted.</div>
</section>
</li>
<li>
<section class="detail" id="_removeUnloadableSessions">
<h3>_removeUnloadableSessions</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">_removeUnloadableSessions</span></div>
<div class="block">If true, a Session whose data cannot be read will be
deleted from the SessionDataStore.</div>
</section>
</li>
<li>
<section class="detail" id="_flushOnResponseCommit">
<h3>_flushOnResponseCommit</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">_flushOnResponseCommit</span></div>
<div class="block">If true, when a response is about to be committed back to the client,
a dirty session will be flushed to the session store.</div>
</section>
</li>
<li>
<section class="detail" id="_invalidateOnShutdown">
<h3>_invalidateOnShutdown</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">_invalidateOnShutdown</span></div>
<div class="block">If true, when the server shuts down, all sessions in the
cache will be invalidated before being removed.</div>
</section>
</li>
</ul>
</section>
</li>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<li>
<section class="constructor-details" id="constructor-detail">
<h2>Constructor Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="&lt;init&gt;(org.eclipse.jetty.server.session.SessionHandler)">
<h3>AbstractSessionCache</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="element-name">AbstractSessionCache</span><wbr><span class="parameters">(<a href="SessionHandler.html" title="class in org.eclipse.jetty.server.session">SessionHandler</a>&nbsp;handler)</span></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>handler</code> - the <a href="SessionHandler.html" title="class in org.eclipse.jetty.server.session"><code>SessionHandler</code></a> to use</dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
<!-- ============ METHOD DETAIL ========== -->
<li>
<section class="method-details" id="method-detail">
<h2>Method Details</h2>
<ul class="member-list">
<li>
<section class="detail" id="newSession(org.eclipse.jetty.server.session.SessionData)">
<h3>newSession</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type"><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></span>&nbsp;<span class="element-name">newSession</span><wbr><span class="parameters">(<a href="SessionData.html" title="class in org.eclipse.jetty.server.session">SessionData</a>&nbsp;data)</span></div>
<div class="block">Create a new Session object from pre-existing session data</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#newSession(org.eclipse.jetty.server.session.SessionData)">newSession</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Parameters:</dt>
<dd><code>data</code> - the session data</dd>
<dt>Returns:</dt>
<dd>a new Session object</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="newSession(jakarta.servlet.http.HttpServletRequest,org.eclipse.jetty.server.session.SessionData)">
<h3>newSession</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type"><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></span>&nbsp;<span class="element-name">newSession</span><wbr><span class="parameters">(jakarta.servlet.http.HttpServletRequest&nbsp;request,
<a href="SessionData.html" title="class in org.eclipse.jetty.server.session">SessionData</a>&nbsp;data)</span></div>
<div class="block">Create a new Session for a request.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>request</code> - the request</dd>
<dd><code>data</code> - the session data</dd>
<dt>Returns:</dt>
<dd>the new session</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="doGet(java.lang.String)">
<h3>doGet</h3>
<div class="member-signature"><span class="modifiers">protected abstract</span>&nbsp;<span class="return-type"><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></span>&nbsp;<span class="element-name">doGet</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id)</span></div>
<div class="block">Get the session matching the key from the cache. Does not load
the session.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - session id</dd>
<dt>Returns:</dt>
<dd>the Session object matching the id</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="doPutIfAbsent(java.lang.String,org.eclipse.jetty.server.session.Session)">
<h3>doPutIfAbsent</h3>
<div class="member-signature"><span class="modifiers">protected abstract</span>&nbsp;<span class="return-type"><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></span>&nbsp;<span class="element-name">doPutIfAbsent</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</span></div>
<div class="block">Put the session into the map if it wasn't already there</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the identity of the session</dd>
<dd><code>session</code> - the session object</dd>
<dt>Returns:</dt>
<dd>null if the session wasn't already in the map, or the existing entry otherwise</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="doComputeIfAbsent(java.lang.String,java.util.function.Function)">
<h3>doComputeIfAbsent</h3>
<div class="member-signature"><span class="modifiers">protected abstract</span>&nbsp;<span class="return-type"><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></span>&nbsp;<span class="element-name">doComputeIfAbsent</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/function/Function.html" title="class or interface in java.util.function" class="external-link">Function</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>,<wbr><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&gt;&nbsp;mappingFunction)</span></div>
<div class="block">Compute the mappingFunction to create a Session object iff the session
with the given id isn't already in the map, otherwise return the existing Session.
This method is expected to have precisely the same behaviour as
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/ConcurrentHashMap.html#computeIfAbsent(K,java.util.function.Function)" title="class or interface in java.util.concurrent" class="external-link"><code>ConcurrentHashMap.computeIfAbsent(K, java.util.function.Function&lt;? super K, ? extends V&gt;)</code></a></div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the session id</dd>
<dd><code>mappingFunction</code> - the function to load the data for the session</dd>
<dt>Returns:</dt>
<dd>an existing Session from the cache</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="doReplace(java.lang.String,org.eclipse.jetty.server.session.Session,org.eclipse.jetty.server.session.Session)">
<h3>doReplace</h3>
<div class="member-signature"><span class="modifiers">protected abstract</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">doReplace</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;oldValue,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;newValue)</span></div>
<div class="block">Replace the mapping from id to oldValue with newValue</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the id</dd>
<dd><code>oldValue</code> - the old value</dd>
<dd><code>newValue</code> - the new value</dd>
<dt>Returns:</dt>
<dd>true if replacement was done</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="doDelete(java.lang.String)">
<h3>doDelete</h3>
<div class="member-signature"><span class="modifiers">public abstract</span>&nbsp;<span class="return-type"><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></span>&nbsp;<span class="element-name">doDelete</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id)</span></div>
<div class="block">Remove the session with this identity from the store</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - the id</dd>
<dt>Returns:</dt>
<dd>Session that was removed or null</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSessionHandler()">
<h3>getSessionHandler</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SessionHandler.html" title="class in org.eclipse.jetty.server.session">SessionHandler</a></span>&nbsp;<span class="element-name">getSessionHandler</span>()</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#getSessionHandler()">getSessionHandler</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Returns:</dt>
<dd>the SessionManger</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="initialize(org.eclipse.jetty.server.session.SessionContext)">
<h3>initialize</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">initialize</span><wbr><span class="parameters">(<a href="SessionContext.html" title="class in org.eclipse.jetty.server.session">SessionContext</a>&nbsp;context)</span></div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#initialize(org.eclipse.jetty.server.session.SessionContext)">initialize</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Parameters:</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>
</section>
</li>
<li>
<section class="detail" id="doStart()">
<h3>doStart</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">doStart</span>()
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
<div class="block"><span class="descfrm-type-label">Description copied from class:&nbsp;<code><a href="../../util/component/ContainerLifeCycle.html#doStart()">ContainerLifeCycle</a></code></span></div>
<div class="block">Starts the managed lifecycle beans in the order they were added.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="../../util/component/ContainerLifeCycle.html#doStart()">doStart</a></code>&nbsp;in class&nbsp;<code><a href="../../util/component/ContainerLifeCycle.html" title="class in org.eclipse.jetty.util.component">ContainerLifeCycle</a></code></dd>
<dt>Throws:</dt>
<dd><code><a href="../../util/component/AbstractLifeCycle.StopException.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle.StopException</a></code> - If thrown, the lifecycle will immediately be stopped.</dd>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></code> - If there was a problem starting. Will cause a transition to FAILED state</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="doStop()">
<h3>doStop</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">doStop</span>()
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
<div class="block"><span class="descfrm-type-label">Description copied from class:&nbsp;<code><a href="../../util/component/ContainerLifeCycle.html#doStop()">ContainerLifeCycle</a></code></span></div>
<div class="block">Stops the managed lifecycle beans in the reverse order they were added.</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="../../util/component/ContainerLifeCycle.html#doStop()">doStop</a></code>&nbsp;in class&nbsp;<code><a href="../../util/component/ContainerLifeCycle.html" title="class in org.eclipse.jetty.util.component">ContainerLifeCycle</a></code></dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></code> - If there was a problem stopping. Will cause a transition to FAILED state</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getSessionDataStore()">
<h3>getSessionDataStore</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="SessionDataStore.html" title="interface in org.eclipse.jetty.server.session">SessionDataStore</a></span>&nbsp;<span class="element-name">getSessionDataStore</span>()</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#getSessionDataStore()">getSessionDataStore</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Returns:</dt>
<dd>the SessionDataStore or null if there isn't one</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setSessionDataStore(org.eclipse.jetty.server.session.SessionDataStore)">
<h3>setSessionDataStore</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setSessionDataStore</span><wbr><span class="parameters">(<a href="SessionDataStore.html" title="interface in org.eclipse.jetty.server.session">SessionDataStore</a>&nbsp;sessionStore)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SessionCache.html#setSessionDataStore(org.eclipse.jetty.server.session.SessionDataStore)">SessionCache</a></code></span></div>
<div class="block">A SessionDataStore that is the authoritative source
of session information.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#setSessionDataStore(org.eclipse.jetty.server.session.SessionDataStore)">setSessionDataStore</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Parameters:</dt>
<dd><code>sessionStore</code> - the <a href="SessionDataStore.html" title="interface in org.eclipse.jetty.server.session"><code>SessionDataStore</code></a> to use</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getEvictionPolicy()">
<h3>getEvictionPolicy</h3>
<div class="member-signature"><span class="annotations"><a href="../../util/annotation/ManagedAttribute.html" title="annotation in org.eclipse.jetty.util.annotation">@ManagedAttribute</a>(<a href="../../util/annotation/ManagedAttribute.html#value()">value</a>="session eviction policy",
<a href="../../util/annotation/ManagedAttribute.html#readonly()">readonly</a>=true)
</span><span class="modifiers">public</span>&nbsp;<span class="return-type">int</span>&nbsp;<span class="element-name">getEvictionPolicy</span>()</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#getEvictionPolicy()">getEvictionPolicy</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Returns:</dt>
<dd>the eviction policy</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="SessionCache.html#getEvictionPolicy()"><code>SessionCache.getEvictionPolicy()</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setEvictionPolicy(int)">
<h3>setEvictionPolicy</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setEvictionPolicy</span><wbr><span class="parameters">(int&nbsp;evictionTimeout)</span></div>
<div class="block">-1 means we never evict inactive sessions.
0 means we evict a session after the last request for it exits
&gt;0 is the number of seconds after which we evict inactive sessions from the cache</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#setEvictionPolicy(int)">setEvictionPolicy</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Parameters:</dt>
<dd><code>evictionTimeout</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>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="SessionCache.html#setEvictionPolicy(int)"><code>SessionCache.setEvictionPolicy(int)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isSaveOnCreate()">
<h3>isSaveOnCreate</h3>
<div class="member-signature"><span class="annotations"><a href="../../util/annotation/ManagedAttribute.html" title="annotation in org.eclipse.jetty.util.annotation">@ManagedAttribute</a>(<a href="../../util/annotation/ManagedAttribute.html#value()">value</a>="immediately save new sessions",
<a href="../../util/annotation/ManagedAttribute.html#readonly()">readonly</a>=true)
</span><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isSaveOnCreate</span>()</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#isSaveOnCreate()">isSaveOnCreate</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Returns:</dt>
<dd>if <code>true</code> the newly created session will be saved immediately</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setSaveOnCreate(boolean)">
<h3>setSaveOnCreate</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setSaveOnCreate</span><wbr><span class="parameters">(boolean&nbsp;saveOnCreate)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SessionCache.html#setSaveOnCreate(boolean)">SessionCache</a></code></span></div>
<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 class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#setSaveOnCreate(boolean)">setSaveOnCreate</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Parameters:</dt>
<dd><code>saveOnCreate</code> - <code>true</code> to immediately save the newly created session</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isRemoveUnloadableSessions()">
<h3>isRemoveUnloadableSessions</h3>
<div class="member-signature"><span class="annotations"><a href="../../util/annotation/ManagedAttribute.html" title="annotation in org.eclipse.jetty.util.annotation">@ManagedAttribute</a>(<a href="../../util/annotation/ManagedAttribute.html#value()">value</a>="delete unreadable stored sessions",
<a href="../../util/annotation/ManagedAttribute.html#readonly()">readonly</a>=true)
</span><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isRemoveUnloadableSessions</span>()</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#isRemoveUnloadableSessions()">isRemoveUnloadableSessions</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Returns:</dt>
<dd>true if sessions that can't be loaded are deleted from the store</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setRemoveUnloadableSessions(boolean)">
<h3>setRemoveUnloadableSessions</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setRemoveUnloadableSessions</span><wbr><span class="parameters">(boolean&nbsp;removeUnloadableSessions)</span></div>
<div class="block">If a session's data cannot be loaded from the store without error, remove
it from the persistent store.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#setRemoveUnloadableSessions(boolean)">setRemoveUnloadableSessions</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Parameters:</dt>
<dd><code>removeUnloadableSessions</code> - if <code>true</code> unloadable sessions will be removed from session store</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setFlushOnResponseCommit(boolean)">
<h3>setFlushOnResponseCommit</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setFlushOnResponseCommit</span><wbr><span class="parameters">(boolean&nbsp;flushOnResponseCommit)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SessionCache.html#setFlushOnResponseCommit(boolean)">SessionCache</a></code></span></div>
<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>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#setFlushOnResponseCommit(boolean)">setFlushOnResponseCommit</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isFlushOnResponseCommit()">
<h3>isFlushOnResponseCommit</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isFlushOnResponseCommit</span>()</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#isFlushOnResponseCommit()">isFlushOnResponseCommit</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Returns:</dt>
<dd><code>true</code> if dirty sessions should be written
before the response is committed.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="get(java.lang.String)">
<h3>get</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></span>&nbsp;<span class="element-name">get</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
<div class="block">Get a session object.
If the session object is not in this session store, try getting
the data for it from a SessionDataStore associated with the
session manager. The usage count of the session is incremented.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#get(java.lang.String)">get</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Parameters:</dt>
<dd><code>id</code> - the session id</dd>
<dt>Returns:</dt>
<dd>the Session if one exists, null otherwise</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></code> - if any error occurred</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="SessionCache.html#get(java.lang.String)"><code>SessionCache.get(java.lang.String)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="getAndEnter(java.lang.String,boolean)">
<h3>getAndEnter</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type"><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></span>&nbsp;<span class="element-name">getAndEnter</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
boolean&nbsp;enter)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
<div class="block">Get a session object.
If the session object is not in this session store, try getting
the data for it from a SessionDataStore associated with the
session manager.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>id</code> - The session to retrieve</dd>
<dd><code>enter</code> - if true, the usage count of the session will be incremented</dd>
<dt>Returns:</dt>
<dd>the session if it exists, null otherwise</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></code> - if the session cannot be loaded</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="add(java.lang.String,org.eclipse.jetty.server.session.Session)">
<h3>add</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">add</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
<div class="block">Add an entirely new session (created by the application calling Request.getSession(true))
to the cache. The usage count of the fresh session is incremented.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#add(java.lang.String,org.eclipse.jetty.server.session.Session)">add</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Parameters:</dt>
<dd><code>id</code> - the id</dd>
<dd><code>session</code> - </dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="commit(org.eclipse.jetty.server.session.Session)">
<h3>commit</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">commit</span><wbr><span class="parameters">(<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
<div class="block">A response that has accessed this session is about to
be returned to the client. Pass the session to the store
to persist, so that any changes will be visible to
subsequent requests on the same node (if using NullSessionCache),
or on other nodes.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#commit(org.eclipse.jetty.server.session.Session)">commit</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="put(java.lang.String,org.eclipse.jetty.server.session.Session)">
<h3>put</h3>
<div class="member-signature"><span class="annotations"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Deprecated.html" title="class or interface in java.lang" class="external-link">@Deprecated</a>
</span><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">put</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span>
<div class="deprecation-comment">use <a href="#release(java.lang.String,org.eclipse.jetty.server.session.Session)"><code>release(String, Session)</code></a> instead</div>
</div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SessionCache.html#put(java.lang.String,org.eclipse.jetty.server.session.Session)">SessionCache</a></code></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 class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#put(java.lang.String,org.eclipse.jetty.server.session.Session)">put</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Parameters:</dt>
<dd><code>id</code> - the session id</dd>
<dd><code>session</code> - the current session object</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></code> - if any error occurred</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="release(java.lang.String,org.eclipse.jetty.server.session.Session)">
<h3>release</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">release</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
<div class="block">Finish using the Session object.
This should be called when a request exists the session. Only when the last
simultaneous request exists the session will any action be taken.
If there is a SessionDataStore write the session data through to it.
If the SessionDataStore supports passivation, call the passivate/active listeners.
If the evictionPolicy == SessionCache.EVICT_ON_SESSION_EXIT then after we have saved
the session, we evict it from the cache.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#release(java.lang.String,org.eclipse.jetty.server.session.Session)">release</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Parameters:</dt>
<dd><code>id</code> - the session id</dd>
<dd><code>session</code> - the current session object</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></code> - if any error occurred</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="SessionCache.html#release(java.lang.String,org.eclipse.jetty.server.session.Session)"><code>SessionCache.release(java.lang.String, org.eclipse.jetty.server.session.Session)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="exists(java.lang.String)">
<h3>exists</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">exists</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
<div class="block">Check to see if a session corresponding to the id exists.
This method will first check with the object store. If it
doesn't exist in the object store (might be passivated etc),
it will check with the data store.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#exists(java.lang.String)">exists</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Parameters:</dt>
<dd><code>id</code> - the session id</dd>
<dt>Returns:</dt>
<dd>true if the session exists, false otherwise</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></code> - the Exception</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="SessionCache.html#exists(java.lang.String)"><code>SessionCache.exists(java.lang.String)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="contains(java.lang.String)">
<h3>contains</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">contains</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
<div class="block">Check to see if this cache contains an entry for the session
corresponding to the session id.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#contains(java.lang.String)">contains</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Parameters:</dt>
<dd><code>id</code> - the session id</dd>
<dt>Returns:</dt>
<dd>true if a Session object matching the id is present
in the cache, false otherwise</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></code> - if any error occurred</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="SessionCache.html#contains(java.lang.String)"><code>SessionCache.contains(java.lang.String)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="delete(java.lang.String)">
<h3>delete</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></span>&nbsp;<span class="element-name">delete</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
<div class="block">Remove a session object from this store and from any backing store.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#delete(java.lang.String)">delete</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Parameters:</dt>
<dd><code>id</code> - the session id</dd>
<dt>Returns:</dt>
<dd>the Session that was removed, null otherwise</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></code> - if any error occurred</dd>
<dt>See Also:</dt>
<dd>
<ul class="see-list-long">
<li><a href="SessionCache.html#delete(java.lang.String)"><code>SessionCache.delete(java.lang.String)</code></a></li>
</ul>
</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="checkExpiration(java.util.Set)">
<h3>checkExpiration</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;</span>&nbsp;<span class="element-name">checkExpiration</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/Set.html" title="class or interface in java.util" class="external-link">Set</a>&lt;<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&gt;&nbsp;candidates)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SessionCache.html#checkExpiration(java.util.Set)">SessionCache</a></code></span></div>
<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 class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#checkExpiration(java.util.Set)">checkExpiration</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Parameters:</dt>
<dd><code>candidates</code> - the session ids to check</dd>
<dt>Returns:</dt>
<dd>the set of session ids that have actually expired: this can
be a superset of the original candidate list.</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="checkInactiveSession(org.eclipse.jetty.server.session.Session)">
<h3>checkInactiveSession</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">checkInactiveSession</span><wbr><span class="parameters">(<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session)</span></div>
<div class="block">Check a session for being inactive and
thus being able to be evicted, if eviction
is enabled.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#checkInactiveSession(org.eclipse.jetty.server.session.Session)">checkInactiveSession</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Parameters:</dt>
<dd><code>session</code> - session to check</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="renewSessionId(java.lang.String,java.lang.String,java.lang.String,java.lang.String)">
<h3>renewSessionId</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></span>&nbsp;<span class="element-name">renewSessionId</span><wbr><span class="parameters">(<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;oldId,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;newId,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;oldExtendedId,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;newExtendedId)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SessionCache.html#renewSessionId(java.lang.String,java.lang.String,java.lang.String,java.lang.String)">SessionCache</a></code></span></div>
<div class="block">Change the id of a Session.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#renewSessionId(java.lang.String,java.lang.String,java.lang.String,java.lang.String)">renewSessionId</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Parameters:</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>Returns:</dt>
<dd>the Session after changing its id</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></code> - if any error occurred</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="renewSessionId(org.eclipse.jetty.server.session.Session,java.lang.String,java.lang.String)">
<h3>renewSessionId</h3>
<div class="member-signature"><span class="modifiers">protected</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">renewSessionId</span><wbr><span class="parameters">(<a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a>&nbsp;session,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;newId,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;newExtendedId)</span>
throws <span class="exceptions"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></span></div>
<div class="block">Swap the id on a session.</div>
<dl class="notes">
<dt>Parameters:</dt>
<dd><code>session</code> - the session for which to do the swap</dd>
<dd><code>newId</code> - the new id</dd>
<dd><code>newExtendedId</code> - the full id plus node id</dd>
<dt>Throws:</dt>
<dd><code><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Exception.html" title="class or interface in java.lang" class="external-link">Exception</a></code> - if there was a failure saving the change</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setSaveOnInactiveEviction(boolean)">
<h3>setSaveOnInactiveEviction</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setSaveOnInactiveEviction</span><wbr><span class="parameters">(boolean&nbsp;saveOnEvict)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SessionCache.html#setSaveOnInactiveEviction(boolean)">SessionCache</a></code></span></div>
<div class="block">Whether or not a a session that is about to be evicted should
be saved before being evicted.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#setSaveOnInactiveEviction(boolean)">setSaveOnInactiveEviction</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Parameters:</dt>
<dd><code>saveOnEvict</code> - <code>true</code> if the session should be saved before being evicted</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="setInvalidateOnShutdown(boolean)">
<h3>setInvalidateOnShutdown</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">void</span>&nbsp;<span class="element-name">setInvalidateOnShutdown</span><wbr><span class="parameters">(boolean&nbsp;invalidateOnShutdown)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SessionCache.html#setInvalidateOnShutdown(boolean)">SessionCache</a></code></span></div>
<div class="block">If true, all existing sessions in the cache will be invalidated when
the server shuts down. Default is false.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#setInvalidateOnShutdown(boolean)">setInvalidateOnShutdown</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isInvalidateOnShutdown()">
<h3>isInvalidateOnShutdown</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isInvalidateOnShutdown</span>()</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#isInvalidateOnShutdown()">isInvalidateOnShutdown</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="isSaveOnInactiveEviction()">
<h3>isSaveOnInactiveEviction</h3>
<div class="member-signature"><span class="annotations"><a href="../../util/annotation/ManagedAttribute.html" title="annotation in org.eclipse.jetty.util.annotation">@ManagedAttribute</a>(<a href="../../util/annotation/ManagedAttribute.html#value()">value</a>="save sessions before evicting from cache",
<a href="../../util/annotation/ManagedAttribute.html#readonly()">readonly</a>=true)
</span><span class="modifiers">public</span>&nbsp;<span class="return-type">boolean</span>&nbsp;<span class="element-name">isSaveOnInactiveEviction</span>()</div>
<div class="block">Whether we should save a session that has been inactive before
we boot it from the cache.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#isSaveOnInactiveEviction()">isSaveOnInactiveEviction</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Returns:</dt>
<dd>true if an inactive session will be saved before being evicted</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="newSession(jakarta.servlet.http.HttpServletRequest,java.lang.String,long,long)">
<h3>newSession</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="Session.html" title="class in org.eclipse.jetty.server.session">Session</a></span>&nbsp;<span class="element-name">newSession</span><wbr><span class="parameters">(jakarta.servlet.http.HttpServletRequest&nbsp;request,
<a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a>&nbsp;id,
long&nbsp;time,
long&nbsp;maxInactiveMs)</span></div>
<div class="block"><span class="descfrm-type-label">Description copied from interface:&nbsp;<code><a href="SessionCache.html#newSession(jakarta.servlet.http.HttpServletRequest,java.lang.String,long,long)">SessionCache</a></code></span></div>
<div class="block">Create an entirely new Session.</div>
<dl class="notes">
<dt>Specified by:</dt>
<dd><code><a href="SessionCache.html#newSession(jakarta.servlet.http.HttpServletRequest,java.lang.String,long,long)">newSession</a></code>&nbsp;in interface&nbsp;<code><a href="SessionCache.html" title="interface in org.eclipse.jetty.server.session">SessionCache</a></code></dd>
<dt>Parameters:</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>Returns:</dt>
<dd>a new Session</dd>
</dl>
</section>
</li>
<li>
<section class="detail" id="toString()">
<h3>toString</h3>
<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span class="return-type"><a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html" title="class or interface in java.lang" class="external-link">String</a></span>&nbsp;<span class="element-name">toString</span>()</div>
<dl class="notes">
<dt>Overrides:</dt>
<dd><code><a href="../../util/component/AbstractLifeCycle.html#toString()">toString</a></code>&nbsp;in class&nbsp;<code><a href="../../util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></code></dd>
</dl>
</section>
</li>
</ul>
</section>
</li>
</ul>
</section>
<!-- ========= END OF CLASS DATA ========= -->
</main>
<footer role="contentinfo">
<hr>
<p class="legal-copy"><small>Copyright &#169; 1995&#x2013;2022 <a href="https://webtide.com">Webtide</a>. All rights reserved.</small></p>
</footer>
</div>
</div>
</body>
</html>