From 7d05241b9208ced8383a8294a840810884e6c107 Mon Sep 17 00:00:00 2001 From: Stefan Bodewig Date: Fri, 16 Apr 2010 20:03:33 +0000 Subject: [PATCH] File("foo").getParent() is null if "foo" is a symbolic link - File("./foo").getParent() is not. PR 49137. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@935064 13f79535-47bb-0310-9956-ffa450edef68 --- WHATSNEW | 4 ++++ .../tools/ant/taskdefs/optional/unix/Symlink.java | 4 +++- .../taskdefs/optional/unix/symlink-test.xml | 14 ++++++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/WHATSNEW b/WHATSNEW index 6348841c6..54f53a0f5 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -86,6 +86,10 @@ Fixed bugs: * was broken on Windows. Bugzilla Report 49090 + * delete failed if the link attribute was a relative path + to a link inside the current directory without a leading ".". + Bugzilla Report 49137 + Other changes: -------------- 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 a01f3762c..0ae517d41 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 @@ -184,7 +184,9 @@ public class Symlink extends DispatchTask { return; } log("Removing symlink: " + link); - SYMLINK_UTILS.deleteSymbolicLink(new File(link), this); + SYMLINK_UTILS.deleteSymbolicLink(FILE_UTILS + .resolveFile(new File("."), link), + this); } catch (FileNotFoundException fnfe) { handleError(fnfe.toString()); } catch (IOException ioe) { diff --git a/src/tests/antunit/taskdefs/optional/unix/symlink-test.xml b/src/tests/antunit/taskdefs/optional/unix/symlink-test.xml index b4986891f..1859db62a 100644 --- a/src/tests/antunit/taskdefs/optional/unix/symlink-test.xml +++ b/src/tests/antunit/taskdefs/optional/unix/symlink-test.xml @@ -92,4 +92,18 @@ + + + + + + + + +]]> + +