You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2019/08/04 12:26:27 UTC

[maven-dependency-plugin] branch MDEP-655 updated: Improved.

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

khmarbaise pushed a commit to branch MDEP-655
in repository https://gitbox.apache.org/repos/asf/maven-dependency-plugin.git


The following commit(s) were added to refs/heads/MDEP-655 by this push:
     new b747a12  Improved.
b747a12 is described below

commit b747a12ace1c6dcccc03c707cd3074ef168738ff
Author: Karl Heinz Marbaise <kh...@apache.org>
AuthorDate: Sun Aug 4 14:26:17 2019 +0200

    Improved.
---
 .../dependency/utils/filters/DestFileFilter.java   | 35 ++++++++++++++++++----
 1 file changed, 29 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/apache/maven/plugins/dependency/utils/filters/DestFileFilter.java b/src/main/java/org/apache/maven/plugins/dependency/utils/filters/DestFileFilter.java
index b19fb21..985c25d 100644
--- a/src/main/java/org/apache/maven/plugins/dependency/utils/filters/DestFileFilter.java
+++ b/src/main/java/org/apache/maven/plugins/dependency/utils/filters/DestFileFilter.java
@@ -19,10 +19,6 @@ package org.apache.maven.plugins.dependency.utils.filters;
  * under the License.
  */
 
-import java.io.File;
-import java.util.LinkedHashSet;
-import java.util.Set;
-
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.plugins.dependency.fromConfiguration.ArtifactItem;
 import org.apache.maven.plugins.dependency.utils.DependencyUtil;
@@ -30,6 +26,12 @@ import org.apache.maven.shared.artifact.filter.collection.AbstractArtifactsFilte
 import org.apache.maven.shared.artifact.filter.collection.ArtifactFilterException;
 import org.codehaus.plexus.util.StringUtils;
 
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.util.LinkedHashSet;
+import java.util.Set;
+
 /**
  * @author <a href="mailto:brianf@apache.org">Brian Fox</a>
  */
@@ -266,7 +268,7 @@ public class DestFileFilter
     }
 
     @Override
-    public boolean isArtifactIncluded( ArtifactItem item )
+    public boolean isArtifactIncluded( ArtifactItem item ) throws ArtifactFilterException
     {
         Artifact artifact = item.getArtifact();
 
@@ -295,6 +297,27 @@ public class DestFileFilter
         }
 
         return overWrite || !destFile.exists()
-            || ( overWriteIfNewer && artifact.getFile().lastModified() > destFile.lastModified() );
+            || ( overWriteIfNewer && getLastModified( artifact.getFile()) > getLastModified( destFile) );
+    }
+
+    /**
+     * Using simply {@code File.getLastModified} will return
+     * sometime a wrong value see JDK bug for details.
+     *
+     * https://bugs.openjdk.java.net/browse/JDK-8177809
+     *
+     * @param file {@link File}
+     * @return the last modification time in milliseconds.
+     * @throws ArtifactFilterException in case of a IO Exception.
+     */
+    private long getLastModified(File file) throws ArtifactFilterException
+    {
+        try
+        {
+            return Files.getLastModifiedTime( file.toPath() ).toMillis();
+        } catch (IOException e)
+        {
+            throw new ArtifactFilterException( "IO Exception", e );
+        }
     }
 }