Author: niallp
Date: Sat Mar 12 01:55:22 2011
New Revision: 1080843
URL: http://svn.apache.org/viewvc?rev=1080843&view=rev
Log:
IO-259 - add stop(long) method that specifies the amount of time to wait before
stopping the monitor - thanks to Dan Checkoway
Modified:
commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java
Modified:
commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java
URL:
http://svn.apache.org/viewvc/commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java?rev=1080843&r1=1080842&r2=1080843&view=diff
==============================================================================
---
commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java
(original)
+++
commons/proper/io/trunk/src/main/java/org/apache/commons/io/monitor/FileAlterationMonitor.java
Sat Mar 12 01:55:22 2011
@@ -147,12 +147,29 @@ public final class FileAlterationMonitor
* @throws Exception if an error occurs initializing the observer
*/
public synchronized void stop() throws Exception {
+ stop(interval);
+ }
+
+ /**
+ * Stop monitoring.
+ *
+ * @param stopInterval the amount of time in milliseconds to wait for the
thread to finish.
+ * A value of zero will wait until the thread to finished (see {@link
Thread#join(long)})
+ * and a nagative value will stop the process immediately).
+ * @throws Exception if an error occurs initializing the observer
+ * @since Commons IO 2.1
+ */
+ public synchronized void stop(long stopInterval) throws Exception {
if (running == false) {
throw new IllegalStateException("Monitor is not running");
}
running = false;
try {
- thread.join(interval);
+ if (stopInterval < 0) {
+ thread.interrupt();
+ } else {
+ thread.join(stopInterval);
+ }
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}