<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!-- NewPage --> <html lang="de"> <head> <!-- Generated by javadoc --> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>FileCleaningTracker (Apache Commons IO 2.6 API)</title> <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="FileCleaningTracker (Apache Commons IO 2.6 API)"; } } catch(err) { } //--> var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10}; var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]}; var altColor = "altColor"; var rowColor = "rowColor"; var tableTab = "tableTab"; var activeTableTab = "activeTableTab"; </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><a href="package-summary.html">Package</a></li> <li class="navBarCell1Rev">Class</li> <li><a href="class-use/FileCleaningTracker.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/apache/commons/io/FileCleaner.html" title="class in org.apache.commons.io"><span class="typeNameLink">Prev Class</span></a></li> <li><a href="../../../../org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io"><span class="typeNameLink">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../../../../index.html?org/apache/commons/io/FileCleaningTracker.html" target="_top">Frames</a></li> <li><a href="FileCleaningTracker.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: </li> <li>Nested | </li> <li>Field | </li> <li><a href="#constructor.summary">Constr</a> | </li> <li><a href="#method.summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail: </li> <li>Field | </li> <li><a href="#constructor.detail">Constr</a> | </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.apache.commons.io</div> <h2 title="Class FileCleaningTracker" class="title">Class FileCleaningTracker</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>org.apache.commons.io.FileCleaningTracker</li> </ul> </li> </ul> <div class="description"> <ul class="blockList"> <li class="blockList"> <hr> <br> <pre>public class <span class="typeNameLabel">FileCleaningTracker</span> extends <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></pre> <div class="block">Keeps track of files awaiting deletion, and deletes them when an associated marker object is reclaimed by the garbage collector. <p> This utility creates a background thread to handle file deletion. Each file to be deleted is registered with a handler object. When the handler object is garbage collected, the file is deleted. <p> In an environment with multiple class loaders (a servlet container, for example), you should consider stopping the background thread if it is no longer needed. This is done by invoking the method <a href="../../../../org/apache/commons/io/FileCleaningTracker.html#exitWhenFinished"><code>exitWhenFinished</code></a>, typically in <code>javax.servlet.ServletContextListener.contextDestroyed(javax.servlet.ServletContextEvent)</code> or similar.</div> </li> </ul> </div> <div class="summary"> <ul class="blockList"> <li class="blockList"> <!-- ======== CONSTRUCTOR SUMMARY ======== --> <ul class="blockList"> <li class="blockList"><a name="constructor.summary"> <!-- --> </a> <h3>Constructor Summary</h3> <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation"> <caption><span>Constructors</span><span class="tabEnd"> </span></caption> <tr> <th class="colOne" scope="col">Constructor and Description</th> </tr> <tr class="altColor"> <td class="colOne"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/io/FileCleaningTracker.html#FileCleaningTracker--">FileCleaningTracker</a></span>()</code> </td> </tr> </table> </li> </ul> <!-- ========== METHOD SUMMARY =========== --> <ul class="blockList"> <li class="blockList"><a name="method.summary"> <!-- --> </a> <h3>Method Summary</h3> <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation"> <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption> <tr> <th class="colFirst" scope="col">Modifier and Type</th> <th class="colLast" scope="col">Method and Description</th> </tr> <tr id="i0" class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/io/FileCleaningTracker.html#exitWhenFinished--">exitWhenFinished</a></span>()</code> <div class="block">Call this method to cause the file cleaner thread to terminate when there are no more objects being tracked for deletion.</div> </td> </tr> <tr id="i1" class="rowColor"> <td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>></code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/io/FileCleaningTracker.html#getDeleteFailures--">getDeleteFailures</a></span>()</code> <div class="block">Return the file paths that failed to delete.</div> </td> </tr> <tr id="i2" class="altColor"> <td class="colFirst"><code>int</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/io/FileCleaningTracker.html#getTrackCount--">getTrackCount</a></span>()</code> <div class="block">Retrieve the number of files currently being tracked, and therefore awaiting deletion.</div> </td> </tr> <tr id="i3" class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/io/FileCleaningTracker.html#track-java.io.File-java.lang.Object-">track</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a> file, <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> marker)</code> <div class="block">Track the specified file, using the provided marker, deleting the file when the marker instance is garbage collected.</div> </td> </tr> <tr id="i4" class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/io/FileCleaningTracker.html#track-java.io.File-java.lang.Object-org.apache.commons.io.FileDeleteStrategy-">track</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a> file, <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> marker, <a href="../../../../org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io">FileDeleteStrategy</a> deleteStrategy)</code> <div class="block">Track the specified file, using the provided marker, deleting the file when the marker instance is garbage collected.</div> </td> </tr> <tr id="i5" class="rowColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/io/FileCleaningTracker.html#track-java.lang.String-java.lang.Object-">track</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path, <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> marker)</code> <div class="block">Track the specified file, using the provided marker, deleting the file when the marker instance is garbage collected.</div> </td> </tr> <tr id="i6" class="altColor"> <td class="colFirst"><code>void</code></td> <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/commons/io/FileCleaningTracker.html#track-java.lang.String-java.lang.Object-org.apache.commons.io.FileDeleteStrategy-">track</a></span>(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path, <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> marker, <a href="../../../../org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io">FileDeleteStrategy</a> deleteStrategy)</code> <div class="block">Track the specified file, using the provided marker, deleting the file when the marker instance is garbage collected.</div> </td> </tr> </table> <ul class="blockList"> <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object"> <!-- --> </a> <h3>Methods inherited from class 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-int-" 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="FileCleaningTracker--"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>FileCleaningTracker</h4> <pre>public FileCleaningTracker()</pre> </li> </ul> </li> </ul> <!-- ============ METHOD DETAIL ========== --> <ul class="blockList"> <li class="blockList"><a name="method.detail"> <!-- --> </a> <h3>Method Detail</h3> <a name="track-java.io.File-java.lang.Object-"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>track</h4> <pre>public void track(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a> file, <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> marker)</pre> <div class="block">Track the specified file, using the provided marker, deleting the file when the marker instance is garbage collected. The <a href="../../../../org/apache/commons/io/FileDeleteStrategy.html#NORMAL"><code>normal</code></a> deletion strategy will be used.</div> <dl> <dt><span class="paramLabel">Parameters:</span></dt> <dd><code>file</code> - the file to be tracked, not null</dd> <dd><code>marker</code> - the marker object used to track the file, not null</dd> <dt><span class="throwsLabel">Throws:</span></dt> <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the file is null</dd> </dl> </li> </ul> <a name="track-java.io.File-java.lang.Object-org.apache.commons.io.FileDeleteStrategy-"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>track</h4> <pre>public void track(<a href="http://docs.oracle.com/javase/7/docs/api/java/io/File.html?is-external=true" title="class or interface in java.io">File</a> file, <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> marker, <a href="../../../../org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io">FileDeleteStrategy</a> deleteStrategy)</pre> <div class="block">Track the specified file, using the provided marker, deleting the file when the marker instance is garbage collected. The specified deletion strategy is used.</div> <dl> <dt><span class="paramLabel">Parameters:</span></dt> <dd><code>file</code> - the file to be tracked, not null</dd> <dd><code>marker</code> - the marker object used to track the file, not null</dd> <dd><code>deleteStrategy</code> - the strategy to delete the file, null means normal</dd> <dt><span class="throwsLabel">Throws:</span></dt> <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the file is null</dd> </dl> </li> </ul> <a name="track-java.lang.String-java.lang.Object-"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>track</h4> <pre>public void track(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path, <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> marker)</pre> <div class="block">Track the specified file, using the provided marker, deleting the file when the marker instance is garbage collected. The <a href="../../../../org/apache/commons/io/FileDeleteStrategy.html#NORMAL"><code>normal</code></a> deletion strategy will be used.</div> <dl> <dt><span class="paramLabel">Parameters:</span></dt> <dd><code>path</code> - the full path to the file to be tracked, not null</dd> <dd><code>marker</code> - the marker object used to track the file, not null</dd> <dt><span class="throwsLabel">Throws:</span></dt> <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the path is null</dd> </dl> </li> </ul> <a name="track-java.lang.String-java.lang.Object-org.apache.commons.io.FileDeleteStrategy-"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>track</h4> <pre>public void track(<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> path, <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> marker, <a href="../../../../org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io">FileDeleteStrategy</a> deleteStrategy)</pre> <div class="block">Track the specified file, using the provided marker, deleting the file when the marker instance is garbage collected. The specified deletion strategy is used.</div> <dl> <dt><span class="paramLabel">Parameters:</span></dt> <dd><code>path</code> - the full path to the file to be tracked, not null</dd> <dd><code>marker</code> - the marker object used to track the file, not null</dd> <dd><code>deleteStrategy</code> - the strategy to delete the file, null means normal</dd> <dt><span class="throwsLabel">Throws:</span></dt> <dd><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/NullPointerException.html?is-external=true" title="class or interface in java.lang">NullPointerException</a></code> - if the path is null</dd> </dl> </li> </ul> <a name="getTrackCount--"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getTrackCount</h4> <pre>public int getTrackCount()</pre> <div class="block">Retrieve the number of files currently being tracked, and therefore awaiting deletion.</div> <dl> <dt><span class="returnLabel">Returns:</span></dt> <dd>the number of files being tracked</dd> </dl> </li> </ul> <a name="getDeleteFailures--"> <!-- --> </a> <ul class="blockList"> <li class="blockList"> <h4>getDeleteFailures</h4> <pre>public <a href="http://docs.oracle.com/javase/7/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>> getDeleteFailures()</pre> <div class="block">Return the file paths that failed to delete.</div> <dl> <dt><span class="returnLabel">Returns:</span></dt> <dd>the file paths that failed to delete</dd> <dt><span class="simpleTagLabel">Since:</span></dt> <dd>2.0</dd> </dl> </li> </ul> <a name="exitWhenFinished--"> <!-- --> </a> <ul class="blockListLast"> <li class="blockList"> <h4>exitWhenFinished</h4> <pre>public void exitWhenFinished()</pre> <div class="block">Call this method to cause the file cleaner thread to terminate when there are no more objects being tracked for deletion. <p> In a simple environment, you don't need this method as the file cleaner thread will simply exit when the JVM exits. In a more complex environment, with multiple class loaders (such as an application server), you should be aware that the file cleaner thread will continue running even if the class loader it was started from terminates. This can constitute a memory leak. <p> For example, suppose that you have developed a web application, which contains the commons-io jar file in your WEB-INF/lib directory. In other words, the FileCleaner class is loaded through the class loader of your web application. If the web application is terminated, but the servlet container is still running, then the file cleaner thread will still exist, posing a memory leak. <p> This method allows the thread to be terminated. Simply call this method in the resource cleanup code, such as <code>javax.servlet.ServletContextListener.contextDestroyed(javax.servlet.ServletContextEvent)</code>. Once called, no new objects can be tracked by the file cleaner.</div> </li> </ul> </li> </ul> </li> </ul> </div> </div> <!-- ========= END OF CLASS DATA ========= --> <!-- ======= 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><a href="package-summary.html">Package</a></li> <li class="navBarCell1Rev">Class</li> <li><a href="class-use/FileCleaningTracker.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/apache/commons/io/FileCleaner.html" title="class in org.apache.commons.io"><span class="typeNameLink">Prev Class</span></a></li> <li><a href="../../../../org/apache/commons/io/FileDeleteStrategy.html" title="class in org.apache.commons.io"><span class="typeNameLink">Next Class</span></a></li> </ul> <ul class="navList"> <li><a href="../../../../index.html?org/apache/commons/io/FileCleaningTracker.html" target="_top">Frames</a></li> <li><a href="FileCleaningTracker.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: </li> <li>Nested | </li> <li>Field | </li> <li><a href="#constructor.summary">Constr</a> | </li> <li><a href="#method.summary">Method</a></li> </ul> <ul class="subNavList"> <li>Detail: </li> <li>Field | </li> <li><a href="#constructor.detail">Constr</a> | </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 © 2002–2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p> </body> </html>