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 17:48:02 UTC
svn commit: r692117 -
/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java
Author: bodewig
Date: Thu Sep 4 08:48:01 2008
New Revision: 692117
URL: http://svn.apache.org/viewvc?rev=692117&view=rev
Log:
whitespace and javadocs
Modified:
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/optional/unix/Symlink.java
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=692117&r1=692116&r2=692117&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 08:48:01 2008
@@ -375,6 +375,8 @@
* <code>File</code> that doesn't exist.
* @throws IOException If calls to <code>File.rename</code>
* or <code>File.delete</code> fail.
+ * @deprecated use the two-arg version which also works if the link's
+ * target can not be renamed.
*/
public static void deleteSymlink(String path)
throws IOException, FileNotFoundException {
@@ -388,11 +390,13 @@
* <code>deleteSymlink(java.io.File)</code>.
*
* @param path A string containing the path of the symlink to delete.
+ * @param task An Ant Task required if "rm" needs to be invoked.
*
* @throws FileNotFoundException When the path results in a
* <code>File</code> that doesn't exist.
* @throws IOException If calls to <code>File.rename</code>
* or <code>File.delete</code> fail.
+ * @since Ant 1.8.0
*/
public static void deleteSymlink(String path, Task t)
throws IOException, FileNotFoundException {
@@ -458,6 +462,7 @@
* <code>File.delete</code> or
* <code>File.getCanonicalPath</code>
* fail.
+ * @since Ant 1.8.0
*/
public static void deleteSymlink(File linkfil, Task task)
throws IOException {
@@ -475,47 +480,51 @@
if (task == null || canfil.getParentFile().canWrite()) {
- // rename the resource, thus breaking the link:
- File temp = FILE_UTILS.createTempFile("symlink", ".tmp",
- canfil.getParentFile(), false,
- false);
-
- if (FILE_UTILS.isLeadingPath(canfil, linkfil)) {
- // link points to a parent directory, renaming the parent
- // will rename the file
- linkfil = new File(temp,
- FILE_UTILS.removeLeadingPath(canfil, linkfil));
- }
+ // rename the resource, thus breaking the link:
+ File temp = FILE_UTILS.createTempFile("symlink", ".tmp",
+ canfil.getParentFile(), false,
+ false);
+
+ if (FILE_UTILS.isLeadingPath(canfil, linkfil)) {
+ // link points to a parent directory, renaming the parent
+ // will rename the file
+ linkfil = new File(temp,
+ FILE_UTILS.removeLeadingPath(canfil,
+ linkfil));
+ }
- boolean renamedTarget = false;
- try {
+ boolean renamedTarget = false;
try {
- FILE_UTILS.rename(canfil, temp);
- renamedTarget = true;
- } catch (IOException e) {
- throw new IOException(
- "Couldn't rename resource when attempting to delete "
- + linkfil);
- }
- // delete the (now) broken link:
- if (!linkfil.delete()) {
- throw new IOException("Couldn't delete symlink: " + linkfil
- + " (was it a real file? is this not a UNIX system?)");
- }
- } finally {
- if (renamedTarget) {
- // return the resource to its original name:
try {
- FILE_UTILS.rename(temp, canfil);
+ FILE_UTILS.rename(canfil, temp);
+ renamedTarget = true;
} catch (IOException e) {
- throw new IOException("Couldn't return resource " + temp
- + " to its original name: "
- + canfil.getAbsolutePath()
- + "\n THE RESOURCE'S NAME ON DISK HAS "
- + "BEEN CHANGED BY THIS ERROR!\n");
+ throw new IOException("Couldn't rename resource when "
+ + "attempting to delete " + linkfil);
+ }
+ // delete the (now) broken link:
+ if (!linkfil.delete()) {
+ throw new IOException("Couldn't delete symlink: "
+ + linkfil
+ + " (was it a real file? is this "
+ + "not a UNIX system?)");
+ }
+ } finally {
+ if (renamedTarget) {
+ // return the resource to its original name:
+ try {
+ FILE_UTILS.rename(temp, canfil);
+ } catch (IOException e) {
+ throw new IOException("Couldn't return resource "
+ + temp
+ + " to its original name: "
+ + canfil.getAbsolutePath()
+ + "\n THE RESOURCE'S NAME ON DISK"
+ + " HAS BEEN CHANGED BY THIS"
+ + " ERROR!\n");
+ }
}
}
- }
} else {
Execute.runCommand(task,
new String[] {"rm", linkfil.getAbsolutePath()});