blob: c3071df20609f299b75b9283846cf56d706d7156 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_92) on Thu Jun 07 14:26:36 EDT 2018 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>org.eclipse.jetty.util.preventers (Jetty :: Project 9.3.24.v20180605 API)</title>
<meta name="date" content="2018-06-07">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="org.eclipse.jetty.util.preventers (Jetty :: Project 9.3.24.v20180605 API)";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/eclipse/jetty/util/log/jmx/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../../../org/eclipse/jetty/util/resource/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/jetty/util/preventers/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Package" class="title">Package&nbsp;org.eclipse.jetty.util.preventers</h1>
<div class="docSummary">
<div class="block">Jetty Util : Common Memory Leak Prevention Tooling</div>
</div>
<p>See:&nbsp;<a href="#package.description">Description</a></p>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/jetty/util/preventers/AbstractLeakPreventer.html" title="class in org.eclipse.jetty.util.preventers">AbstractLeakPreventer</a></td>
<td class="colLast">
<div class="block">AbstractLeakPreventer
Abstract base class for code that seeks to avoid pinning of webapp classloaders by using the jetty classloader to
proactively call the code that pins them (generally pinned as static data members, or as static
data members that are daemon threads (which use the context classloader)).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/jetty/util/preventers/AppContextLeakPreventer.html" title="class in org.eclipse.jetty.util.preventers">AppContextLeakPreventer</a></td>
<td class="colLast">
<div class="block">AppContextLeakPreventer
Cause the classloader that is pinned by AppContext.getAppContext() to be
a container or system classloader, not a webapp classloader.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/jetty/util/preventers/AWTLeakPreventer.html" title="class in org.eclipse.jetty.util.preventers">AWTLeakPreventer</a></td>
<td class="colLast">
<div class="block">AWTLeakPreventer
See https://issues.jboss.org/browse/AS7-3733
The java.awt.Toolkit class has a static field that is the default toolkit.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/jetty/util/preventers/DOMLeakPreventer.html" title="class in org.eclipse.jetty.util.preventers">DOMLeakPreventer</a></td>
<td class="colLast">
<div class="block">DOMLeakPreventer
See http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6916498
Prevent the RuntimeException that is a static member of AbstractDOMParser
from pinning a webapp classloader by causing it to be set here by a non-webapp classloader.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/jetty/util/preventers/DriverManagerLeakPreventer.html" title="class in org.eclipse.jetty.util.preventers">DriverManagerLeakPreventer</a></td>
<td class="colLast">
<div class="block">DriverManagerLeakPreventer
Cause DriverManager.getCallerClassLoader() to be called, which will pin the classloader.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/jetty/util/preventers/GCThreadLeakPreventer.html" title="class in org.eclipse.jetty.util.preventers">GCThreadLeakPreventer</a></td>
<td class="colLast">
<div class="block">GCThreadLeakPreventer
Prevents a call to sun.misc.GC.requestLatency pinning a webapp classloader
by calling it with a non-webapp classloader.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/jetty/util/preventers/Java2DLeakPreventer.html" title="class in org.eclipse.jetty.util.preventers">Java2DLeakPreventer</a></td>
<td class="colLast">
<div class="block">Java2DLeakPreventer
Prevent pinning of webapp classloader by pre-loading sun.java2d.Disposer class
before webapp classloaders are created.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/jetty/util/preventers/LDAPLeakPreventer.html" title="class in org.eclipse.jetty.util.preventers">LDAPLeakPreventer</a></td>
<td class="colLast">
<div class="block">LDAPLeakPreventer
If com.sun.jndi.LdapPoolManager class is loaded and the system property
com.sun.jndi.ldap.connect.pool.timeout is set to a nonzero value, a daemon
thread is started which can pin a webapp classloader if it is the first to
load the LdapPoolManager.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../../../org/eclipse/jetty/util/preventers/LoginConfigurationLeakPreventer.html" title="class in org.eclipse.jetty.util.preventers">LoginConfigurationLeakPreventer</a></td>
<td class="colLast">
<div class="block">LoginConfigurationLeakPreventer
The javax.security.auth.login.Configuration class keeps a static reference to the
thread context classloader.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../org/eclipse/jetty/util/preventers/SecurityProviderLeakPreventer.html" title="class in org.eclipse.jetty.util.preventers">SecurityProviderLeakPreventer</a></td>
<td class="colLast">
<div class="block">SecurityProviderLeakPreventer
Some security providers, such as sun.security.pkcs11.SunPKCS11 start a deamon thread,
which will use the thread context classloader.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="package.description">
<!-- -->
</a>
<h2 title="Package org.eclipse.jetty.util.preventers Description">Package org.eclipse.jetty.util.preventers Description</h2>
<div class="block">Jetty Util : Common Memory Leak Prevention Tooling</div>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/eclipse/jetty/util/log/jmx/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../../../org/eclipse/jetty/util/resource/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/jetty/util/preventers/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 1995&#x2013;2018 <a href="http://webtide.com">Webtide</a>. All rights reserved.</small></p>
</body>
</html>