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 <gardgreg...@gmail.com> 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);