You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2020/08/07 16:41:10 UTC

[commons-io] branch master updated: Don't call File.setLastModified() directly but go through wrapper method to allow experimenting with Files.setLastModifiedTime().

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 8b7c822  Don't call File.setLastModified() directly but go through wrapper method to allow experimenting with Files.setLastModifiedTime().
8b7c822 is described below

commit 8b7c82225ad535bba66b2a4c64c4cdd80018cb36
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Fri Aug 7 12:41:04 2020 -0400

    Don't call File.setLastModified() directly but go through wrapper method
    to
    allow experimenting with Files.setLastModifiedTime().
---
 .../org/apache/commons/io/FileUtilsTestCase.java   | 23 ++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

diff --git a/src/test/java/org/apache/commons/io/FileUtilsTestCase.java b/src/test/java/org/apache/commons/io/FileUtilsTestCase.java
index 9c81611..8ae6ba3 100644
--- a/src/test/java/org/apache/commons/io/FileUtilsTestCase.java
+++ b/src/test/java/org/apache/commons/io/FileUtilsTestCase.java
@@ -40,6 +40,7 @@ import java.net.URL;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
+import java.nio.file.attribute.FileTime;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -1399,9 +1400,9 @@ public class FileUtilsTestCase {
         // Set dates in reverse order to avoid overwriting previous values
         // Also, use full seconds (arguments are in ms) close to today
         // but still highly unlikely to occur in the real world
-        sourceFile.setLastModified(DATE3);
-        sourceDirectory.setLastModified(DATE2);
-        source.setLastModified(DATE1);
+        setLastModifiedMillis(sourceFile, DATE3);
+        setLastModifiedMillis(sourceDirectory, DATE2);
+        setLastModifiedMillis(source, DATE1);
 
         final File target = new File(temporaryFolder, "target");
         final File targetDirectory = new File(target, "directory");
@@ -1438,7 +1439,7 @@ public class FileUtilsTestCase {
         FileUtils.deleteDirectory(target);
     }
 
-    public long getLastModifiedMillis(final File file) throws IOException {
+    private long getLastModifiedMillis(final File file) throws IOException {
         return file.lastModified();
         //https://bugs.openjdk.java.net/browse/JDK-8177809
         //return Files.getLastModifiedTime(file.toPath()).toMillis();
@@ -1774,7 +1775,7 @@ public class FileUtilsTestCase {
         out.close();
         assertEquals(1, file.length(), "Wrote one byte to file");
         final long y2k = new GregorianCalendar(2000, 0, 1).getTime().getTime();
-        final boolean res = file.setLastModified(y2k);  // 0L fails on Win98
+        final boolean res = setLastModifiedMillis(file, y2k);  // 0L fails on Win98
         assertEquals(true, res, "Bad test: set lastModified failed");
         assertEquals(y2k, getLastModifiedMillis(file), "Bad test: set lastModified set incorrect value");
         final long now = System.currentTimeMillis();
@@ -3096,11 +3097,21 @@ public class FileUtilsTestCase {
     private void backDateFile(File testFile) throws IOException {
         final long mins10 = 1000 * 60 * 10;
         final long lastModified1 = getLastModifiedMillis(testFile);
-        testFile.setLastModified(lastModified1 - mins10);
+        setLastModifiedMillis(testFile, lastModified1 - mins10);
         // ensure it was changed
         assertNotEquals(getLastModifiedMillis(testFile), lastModified1, "Should have changed source date");
     }
 
+    private boolean setLastModifiedMillis(File testFile, final long millis) {
+        return testFile.setLastModified(millis);
+//        try {
+//            Files.setLastModifiedTime(testFile.toPath(), FileTime.fromMillis(millis));
+//        } catch (IOException e) {
+//            return false;
+//        }
+//        return true;
+    }
+
     /**
      * DirectoryWalker implementation that recursively lists all files and directories.
      */