From af0fb970a1c0c309ca5f907e7a36d8cc62e6bdd1 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Mon, 8 Sep 2008 12:44:52 +0000 Subject: [PATCH] don't delete plain files with symlink, must have been broken by my last changes to symlink git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@693081 13f79535-47bb-0310-9956-ffa450edef68 --- .../tools/ant/taskdefs/optional/unix/Symlink.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java b/src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java index c4bc3e72d..89e8ed342 100644 --- a/src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java +++ b/src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java @@ -466,11 +466,22 @@ public class Symlink extends DispatchTask { */ public static void deleteSymlink(File linkfil, Task task) throws IOException { - if (!linkfil.exists()) { + if (FILE_UTILS.isDanglingSymbolicLink(linkfil.getParentFile(), + linkfil.getName())) { linkfil.delete(); return; } + if (!FILE_UTILS.isSymbolicLink(linkfil.getParentFile(), + linkfil.getName())) { + // plain file, not a link + return; + } + + if (!linkfil.exists()) { + throw new FileNotFoundException("No such symlink: " + linkfil); + } + // find the resource of the existing link: File canfil = linkfil.getCanonicalFile();