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);

Reply via email to