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