Repository: ant-ivy
Updated Branches:
  refs/heads/master a7318cdb6 -> d1d956fc2


IVY-1594 Make sure we unlink an existing link, when retrieve task is enabled 
with symlink = true


Project: http://git-wip-us.apache.org/repos/asf/ant-ivy/repo
Commit: http://git-wip-us.apache.org/repos/asf/ant-ivy/commit/d1d956fc
Tree: http://git-wip-us.apache.org/repos/asf/ant-ivy/tree/d1d956fc
Diff: http://git-wip-us.apache.org/repos/asf/ant-ivy/diff/d1d956fc

Branch: refs/heads/master
Commit: d1d956fc2f9154e9e6452b54dd3f478d728e9fad
Parents: a7318cd
Author: Jaikiran Pai <[email protected]>
Authored: Thu Dec 6 06:22:31 2018 +0530
Committer: Jaikiran Pai <[email protected]>
Committed: Thu Dec 6 06:22:31 2018 +0530

----------------------------------------------------------------------
 src/java/org/apache/ivy/util/FileUtil.java | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ant-ivy/blob/d1d956fc/src/java/org/apache/ivy/util/FileUtil.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/ivy/util/FileUtil.java 
b/src/java/org/apache/ivy/util/FileUtil.java
index 2968708..9c780f2 100644
--- a/src/java/org/apache/ivy/util/FileUtil.java
+++ b/src/java/org/apache/ivy/util/FileUtil.java
@@ -85,9 +85,17 @@ public final class FileUtil {
                 return false;
             }
         } else {
-            // it's a directory being symlinked, make sure the "link" that is 
being
-            // created has the necessary parent directories in place before 
triggering
-            // symlink creation
+            // it's a directory being symlinked
+
+            // see if the directory represented by the "link" exists and is 
already a symbolic
+            // link. If it is and if we are asked to overwrite then we *only* 
break the link
+            // in preparation of symlink creation, later in this method
+            if (Files.isSymbolicLink(link.toPath()) && overwrite) {
+                Message.verbose("Un-linking existing symbolic link " + link + 
" during symlink creation, since overwrite=true");
+                Files.delete(link.toPath());
+            }
+            // make sure the "link" that is being created has the necessary 
parent directories
+            // in place before triggering symlink creation
             if (link.getParentFile() != null) {
                 link.getParentFile().mkdirs();
             }

Reply via email to