You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2022/07/25 14:11:26 UTC

[maven-shared-utils] 01/02: [MSHARED-1107] Make copyFile succeed with source file having lastModified() = 0

This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-shared-utils.git

commit cbd1acd141c7cdc80fe3750ef89a1127c10578bb
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Mon Jul 25 14:56:06 2022 +0200

    [MSHARED-1107] Make copyFile succeed with source file having lastModified() = 0
    
    Also check for existence of destination file before overwriting.
    
    This closes #105
---
 .../apache/maven/shared/utils/io/FileUtils.java    |  2 +-
 .../maven/shared/utils/io/FileUtilsTest.java       | 24 ++++++++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/maven/shared/utils/io/FileUtils.java b/src/main/java/org/apache/maven/shared/utils/io/FileUtils.java
index 79c96b3..100ad81 100644
--- a/src/main/java/org/apache/maven/shared/utils/io/FileUtils.java
+++ b/src/main/java/org/apache/maven/shared/utils/io/FileUtils.java
@@ -1901,7 +1901,7 @@ public class FileUtils
     {
         if ( wrappers == null || wrappers.length == 0 )
         {
-            if ( overwrite || to.lastModified() < from.lastModified() )
+            if ( overwrite || !to.exists() || to.lastModified() < from.lastModified() )
             {
                 copyFile( from, to );
             }
diff --git a/src/test/java/org/apache/maven/shared/utils/io/FileUtilsTest.java b/src/test/java/org/apache/maven/shared/utils/io/FileUtilsTest.java
index 4dfa4fa..1f7daba 100644
--- a/src/test/java/org/apache/maven/shared/utils/io/FileUtilsTest.java
+++ b/src/test/java/org/apache/maven/shared/utils/io/FileUtilsTest.java
@@ -439,6 +439,30 @@ public class FileUtilsTest
         assertFileContent( to, "Hello World!" );
     }
 
+    @Test
+    public void copyFileWithNoFiltersAndLastModifiedDateOfZeroAndNoDestination()
+        throws Exception
+    {
+        File from = write(
+            "from.txt",
+            MODIFIED_YESTERDAY,
+            "Hello World!"
+        );
+        File to = new File(
+            tempFolder.getRoot(),
+            "to.txt"
+        );
+
+        from.setLastModified( 0 );
+        FileUtils.copyFile( from, to, null, ( FileUtils.FilterWrapper[] ) null);
+
+        assertTrue(
+            "to.txt did not exist so should have been written",
+            to.lastModified() >= MODIFIED_TODAY
+        );
+        assertFileContent( to, "Hello World!" );
+    }
+
     @Test
     public void copyFileWithNoFiltersAndOutdatedDestination()
             throws Exception