You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@ant.apache.org by bo...@apache.org on 2008/09/04 16:28:06 UTC
svn commit: r692047 - in /ant/core/trunk: WHATSNEW
src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java
src/tests/antunit/taskdefs/optional/unix/symlink-test.xml
Author: bodewig
Date: Thu Sep 4 07:28:04 2008
New Revision: 692047
URL: http://svn.apache.org/viewvc?rev=692047&view=rev
Log:
allow symlink to delete broken links. Part of PR 41285.
Modified:
ant/core/trunk/WHATSNEW
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java
ant/core/trunk/src/tests/antunit/taskdefs/optional/unix/symlink-test.xml
Modified: ant/core/trunk/WHATSNEW
URL: http://svn.apache.org/viewvc/ant/core/trunk/WHATSNEW?rev=692047&r1=692046&r2=692047&view=diff
==============================================================================
--- ant/core/trunk/WHATSNEW (original)
+++ ant/core/trunk/WHATSNEW Thu Sep 4 07:28:04 2008
@@ -91,6 +91,11 @@
locale.
Bugzilla Report 44659.
+ * <symlink action="delete"> used to fail if the link was broken (i.e.
+ pointing to a file or directory that no longer existed). It will now
+ silently try to remove the link.
+ Bugzilla Report 41285.
+
Fixed bugs:
-----------
Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java?rev=692047&r1=692046&r2=692047&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java (original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java Thu Sep 4 07:28:04 2008
@@ -391,7 +391,11 @@
* rename the resource (breaking the link) and then deleting the link.
* The resource is then returned to its original name inside a finally
* block to ensure that the resource is unharmed even in the event of
- * an exception.
+ * an exception.</p>
+ *
+ * <p>Since Ant 1.8.0 this method will try to delete the File object if
+ * it reports it wouldn't exist (as symlinks pointing nowhere usually do).
+ * Prior version would throw a FileNotFoundException in that case.</p>
*
* @param linkfil A <code>File</code> object of the symlink to delete.
*
@@ -403,7 +407,8 @@
public static void deleteSymlink(File linkfil)
throws IOException {
if (!linkfil.exists()) {
- throw new FileNotFoundException("No such symlink: " + linkfil);
+ linkfil.delete();
+ return;
}
// find the resource of the existing link:
File canfil = linkfil.getCanonicalFile();
Modified: ant/core/trunk/src/tests/antunit/taskdefs/optional/unix/symlink-test.xml
URL: http://svn.apache.org/viewvc/ant/core/trunk/src/tests/antunit/taskdefs/optional/unix/symlink-test.xml?rev=692047&r1=692046&r2=692047&view=diff
==============================================================================
--- ant/core/trunk/src/tests/antunit/taskdefs/optional/unix/symlink-test.xml (original)
+++ ant/core/trunk/src/tests/antunit/taskdefs/optional/unix/symlink-test.xml Thu Sep 4 07:28:04 2008
@@ -62,4 +62,11 @@
resource="${file_ref}"/>
</target>
+ <target name="testDeleteOfBrokenLink" depends="init" if="unix">
+ <symlink link="${output}/link" resource="${file_ref}"/>
+ <delete file="${file_ref}"/>
+ <symlink link="${output}/link" action="delete"/>
+ <au:assertFileDoesntExist file="${output}/link"/>
+ </target>
+
</project>