This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-io.git
The following commit(s) were added to refs/heads/master by this push:
new 7202d09 Avoid Code Duplication: Reuse Sleep from ThreadMonitor.
7202d09 is described below
commit 7202d097c5095e0597678beaf706987d4754119f
Author: Gary Gregory <[email protected]>
AuthorDate: Thu Sep 23 14:02:11 2021 -0400
Avoid Code Duplication: Reuse Sleep from ThreadMonitor.
- Redo changes from PR #66 from DaGeRe.
- Use sleepQuietly.
---
src/changes/changes.xml | 5 ++++-
.../java/org/apache/commons/io/ThreadMonitor.java | 2 +-
src/test/java/org/apache/commons/io/DemuxTest.java | 8 ++++----
.../java/org/apache/commons/io/FileUtilsTest.java | 6 +-----
.../java/org/apache/commons/io/test/TestUtils.java | 23 +++++++++++-----------
5 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 2e95338..5b2b25f 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -80,9 +80,12 @@ The <action> type attribute can be add,update,fix,remove.
<action issue="IO-749" dev="ggregory" type="fix" due-to="haihuiyang,
Gary Gregory">
FileUtils.listFiles() does not list matching files if File parameter
is a symbolic link.
</action>
- <action issue="IO-749" dev="ggregory" type="fix" due-to="niranjanghule,
Gary Gregory">
+ <action dev="ggregory" type="fix" due-to="niranjanghule, Gary Gregory">
Fix typo in Javadocs for FileUtils#convertFileCollectionToFileArray()
#276.
</action>
+ <action dev="ggregory" type="fix" due-to="DaGeRe, Gary Gregory">
+ Avoid Code Duplication: Reuse Sleep from ThreadMonitor #66.
+ </action>
<!-- ADD -->
<action dev="ggregory" type="add" due-to="Gary Gregory">
Add BrokenReader.INSTANCE.
diff --git a/src/main/java/org/apache/commons/io/ThreadMonitor.java
b/src/main/java/org/apache/commons/io/ThreadMonitor.java
index 0ef711f..bd1fd16 100644
--- a/src/main/java/org/apache/commons/io/ThreadMonitor.java
+++ b/src/main/java/org/apache/commons/io/ThreadMonitor.java
@@ -117,7 +117,7 @@ class ThreadMonitor implements Runnable {
* @param duration the sleep duration.
* @throws InterruptedException if interrupted.
*/
- private static void sleep(final Duration duration) throws
InterruptedException {
+ static void sleep(final Duration duration) throws InterruptedException {
final Instant finishInstant = Instant.now().plus(duration);
Duration remainingDuration = duration;
do {
diff --git a/src/test/java/org/apache/commons/io/DemuxTest.java
b/src/test/java/org/apache/commons/io/DemuxTest.java
index b074ed3..c705ffd 100644
--- a/src/test/java/org/apache/commons/io/DemuxTest.java
+++ b/src/test/java/org/apache/commons/io/DemuxTest.java
@@ -64,8 +64,8 @@ public class DemuxTest {
//System.out.println( "Reading: " + (char)ch );
stringBuffer.append((char) ch);
- final int sleepTime = Math.abs(c_random.nextInt() % 10);
- TestUtils.sleep(sleepTime);
+ final int sleepMillis = Math.abs(c_random.nextInt() % 10);
+ TestUtils.sleep(sleepMillis);
ch = demuxInputStream.read();
}
} catch (final Exception e) {
@@ -96,8 +96,8 @@ public class DemuxTest {
try {
//System.out.println( "Writing: " + (char)byteArray[ i ] );
demuxOutputStream.write(element);
- final int sleepTime = Math.abs(c_random.nextInt() % 10);
- TestUtils.sleep(sleepTime);
+ final int sleepMillis = Math.abs(c_random.nextInt() % 10);
+ TestUtils.sleep(sleepMillis);
} catch (final Exception e) {
e.printStackTrace();
}
diff --git a/src/test/java/org/apache/commons/io/FileUtilsTest.java
b/src/test/java/org/apache/commons/io/FileUtilsTest.java
index ce3fdfc..e94738f 100644
--- a/src/test/java/org/apache/commons/io/FileUtilsTest.java
+++ b/src/test/java/org/apache/commons/io/FileUtilsTest.java
@@ -1668,11 +1668,7 @@ public class FileUtilsTest {
}
do {
- try {
- TestUtils.sleep(1000);
- } catch (final InterruptedException ie) {
- // ignore
- }
+ TestUtils.sleepQuietly(1000);
if (!reference.getParentFile().exists()) {
throw new IOException("Cannot create file " + reference
+ " as the parent directory does not exist");
diff --git a/src/test/java/org/apache/commons/io/test/TestUtils.java
b/src/test/java/org/apache/commons/io/test/TestUtils.java
index 7b03625..fe56b19 100644
--- a/src/test/java/org/apache/commons/io/test/TestUtils.java
+++ b/src/test/java/org/apache/commons/io/test/TestUtils.java
@@ -33,9 +33,11 @@ import java.io.Reader;
import java.io.Writer;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
+import java.time.Duration;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.output.ByteArrayOutputStream;
+import org.apache.commons.lang3.ThreadUtils;
/**
* Base class for testcases doing tests with files.
@@ -185,8 +187,7 @@ public abstract class TestUtils {
}
}
- public static void generateTestData(final OutputStream out, final long
size)
- throws IOException {
+ public static void generateTestData(final OutputStream out, final long
size) throws IOException {
for (int i = 0; i < size; i++) {
// output.write((byte)'X');
// nice varied byte pattern compatible with Readers and Writers
@@ -207,23 +208,23 @@ public abstract class TestUtils {
}
/**
- * Sleep for a guaranteed number of milliseconds unless interrupted.
+ * Sleeps for a guaranteed number of milliseconds unless interrupted.
*
* This method exists because Thread.sleep(100) can sleep for 0, 70, 100
or 200ms or anything else
* it deems appropriate. Read the docs on Thread.sleep for further details.
*
- * @param millis the number of milliseconds to sleep for
- * @throws InterruptedException if interrupted
+ * @param millis the number of milliseconds to sleep.
+ * @throws InterruptedException if interrupted.
*/
public static void sleep(final long millis) throws InterruptedException {
- final long finishAtMillis = System.currentTimeMillis() + millis;
- long remainingMillis = millis;
- do {
- Thread.sleep(remainingMillis);
- remainingMillis = finishAtMillis - System.currentTimeMillis();
- } while (remainingMillis > 0);
+ ThreadUtils.sleep(Duration.ofMillis(millis));
}
+ /**
+ * Sleeps and swallows InterruptedException.
+ *
+ * @param millis the number of milliseconds to sleep.
+ */
public static void sleepQuietly(final long millis) {
try {
sleep(millis);