blob: a01eb7971d4d830f9109c4dc828ee94a6daf10a7 [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 (version 1.7.0_80) on Wed Jun 07 15:10:49 EDT 2017 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GCThreadLeakPreventer (Jetty :: Project 9.2.22.v20170606 API)</title>
<meta name="date" content="2017-06-07">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="GCThreadLeakPreventer (Jetty :: Project 9.2.22.v20170606 API)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/GCThreadLeakPreventer.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 class="aboutLanguage"><em><script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-1149868-7']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/eclipse/jetty/util/preventers/DriverManagerLeakPreventer.html" title="class in org.eclipse.jetty.util.preventers"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/eclipse/jetty/util/preventers/Java2DLeakPreventer.html" title="class in org.eclipse.jetty.util.preventers"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/jetty/util/preventers/GCThreadLeakPreventer.html" target="_top">Frames</a></li>
<li><a href="GCThreadLeakPreventer.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All 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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested_classes_inherited_from_class_org.eclipse.jetty.util.component.AbstractLifeCycle">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields_inherited_from_class_org.eclipse.jetty.util.preventers.AbstractLeakPreventer">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="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.eclipse.jetty.util.preventers</div>
<h2 title="Class GCThreadLeakPreventer" class="title">Class GCThreadLeakPreventer</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">org.eclipse.jetty.util.component.AbstractLifeCycle</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/eclipse/jetty/util/preventers/AbstractLeakPreventer.html" title="class in org.eclipse.jetty.util.preventers">org.eclipse.jetty.util.preventers.AbstractLeakPreventer</a></li>
<li>
<ul class="inheritance">
<li>org.eclipse.jetty.util.preventers.GCThreadLeakPreventer</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../org/eclipse/jetty/util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">GCThreadLeakPreventer</span>
extends <a href="../../../../../org/eclipse/jetty/util/preventers/AbstractLeakPreventer.html" title="class in org.eclipse.jetty.util.preventers">AbstractLeakPreventer</a></pre>
<div class="block">GCThreadLeakPreventer
Prevents a call to sun.misc.GC.requestLatency pinning a webapp classloader
by calling it with a non-webapp classloader. The problem appears to be that
when this method is called, a daemon thread is created which takes the
context classloader. A known caller of this method is the RMI impl. See
http://stackoverflow.com/questions/6626680/does-java-garbage-collection-log-entry-full-gc-system-mean-some-class-called
This preventer will start the thread with the longest possible interval, although
subsequent calls can vary that. Recommend to only use this class if you're doing
RMI.
Inspired by Tomcat JreMemoryLeakPrevention.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested_class_summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.jetty.util.component.AbstractLifeCycle">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h3>
<code><a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.AbstractLifeCycleListener.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle.AbstractLifeCycleListener</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="nested_classes_inherited_from_class_org.eclipse.jetty.util.component.LifeCycle">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from interface&nbsp;org.eclipse.jetty.util.component.<a href="../../../../../org/eclipse/jetty/util/component/LifeCycle.html" title="interface in org.eclipse.jetty.util.component">LifeCycle</a></h3>
<code><a href="../../../../../org/eclipse/jetty/util/component/LifeCycle.Listener.html" title="interface in org.eclipse.jetty.util.component">LifeCycle.Listener</a></code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.jetty.util.preventers.AbstractLeakPreventer">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.eclipse.jetty.util.preventers.<a href="../../../../../org/eclipse/jetty/util/preventers/AbstractLeakPreventer.html" title="class in org.eclipse.jetty.util.preventers">AbstractLeakPreventer</a></h3>
<code><a href="../../../../../org/eclipse/jetty/util/preventers/AbstractLeakPreventer.html#LOG">LOG</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields_inherited_from_class_org.eclipse.jetty.util.component.AbstractLifeCycle">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h3>
<code><a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#FAILED">FAILED</a>, <a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#RUNNING">RUNNING</a>, <a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#STARTED">STARTED</a>, <a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#STARTING">STARTING</a>, <a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#STOPPED">STOPPED</a>, <a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#STOPPING">STOPPING</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../org/eclipse/jetty/util/preventers/GCThreadLeakPreventer.html#GCThreadLeakPreventer()">GCThreadLeakPreventer</a></strong>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/eclipse/jetty/util/preventers/GCThreadLeakPreventer.html#prevent(java.lang.ClassLoader)">prevent</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;loader)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.jetty.util.preventers.AbstractLeakPreventer">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.jetty.util.preventers.<a href="../../../../../org/eclipse/jetty/util/preventers/AbstractLeakPreventer.html" title="class in org.eclipse.jetty.util.preventers">AbstractLeakPreventer</a></h3>
<code><a href="../../../../../org/eclipse/jetty/util/preventers/AbstractLeakPreventer.html#doStart()">doStart</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.eclipse.jetty.util.component.AbstractLifeCycle">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.jetty.util.component.<a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html" title="class in org.eclipse.jetty.util.component">AbstractLifeCycle</a></h3>
<code><a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#addLifeCycleListener(org.eclipse.jetty.util.component.LifeCycle.Listener)">addLifeCycleListener</a>, <a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#doStop()">doStop</a>, <a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#getState()">getState</a>, <a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#getState(org.eclipse.jetty.util.component.LifeCycle)">getState</a>, <a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#getStopTimeout()">getStopTimeout</a>, <a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#isFailed()">isFailed</a>, <a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#isRunning()">isRunning</a>, <a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#isStarted()">isStarted</a>, <a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#isStarting()">isStarting</a>, <a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#isStopped()">isStopped</a>, <a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#isStopping()">isStopping</a>, <a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#removeLifeCycleListener(org.eclipse.jetty.util.component.LifeCycle.Listener)">removeLifeCycleListener</a>, <a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#setStopTimeout(long)">setStopTimeout</a>, <a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#start()">start</a>, <a href="../../../../../org/eclipse/jetty/util/component/AbstractLifeCycle.html#stop()">stop</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="GCThreadLeakPreventer()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>GCThreadLeakPreventer</h4>
<pre>public&nbsp;GCThreadLeakPreventer()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="prevent(java.lang.ClassLoader)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>prevent</h4>
<pre>public&nbsp;void&nbsp;prevent(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html?is-external=true" title="class or interface in java.lang">ClassLoader</a>&nbsp;loader)</pre>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/eclipse/jetty/util/preventers/AbstractLeakPreventer.html#prevent(java.lang.ClassLoader)">prevent</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/eclipse/jetty/util/preventers/AbstractLeakPreventer.html" title="class in org.eclipse.jetty.util.preventers">AbstractLeakPreventer</a></code></dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/eclipse/jetty/util/preventers/AbstractLeakPreventer.html#prevent(java.lang.ClassLoader)"><code>AbstractLeakPreventer.prevent(java.lang.ClassLoader)</code></a></dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/GCThreadLeakPreventer.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 class="aboutLanguage"><em><script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-1149868-7']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/eclipse/jetty/util/preventers/DriverManagerLeakPreventer.html" title="class in org.eclipse.jetty.util.preventers"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/eclipse/jetty/util/preventers/Java2DLeakPreventer.html" title="class in org.eclipse.jetty.util.preventers"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/jetty/util/preventers/GCThreadLeakPreventer.html" target="_top">Frames</a></li>
<li><a href="GCThreadLeakPreventer.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All 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>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested_classes_inherited_from_class_org.eclipse.jetty.util.component.AbstractLifeCycle">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields_inherited_from_class_org.eclipse.jetty.util.preventers.AbstractLeakPreventer">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="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 1995-2017 <a href="http://webtide.com">Webtide</a>. All Rights Reserved.</small></p>
</body>
</html>