You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2008/05/29 23:05:40 UTC

svn commit: r661480 - /maven/shared/trunk/file-management/src/main/java/org/apache/maven/shared/model/fileset/util/FileSetManager.java

Author: hboutemy
Date: Thu May 29 14:05:40 2008
New Revision: 661480

URL: http://svn.apache.org/viewvc?rev=661480&view=rev
Log:
fixed testDeleteDontFollowSymlinks() unit test, which failed to delete a symlink linking to its parent directory due to recursion

Modified:
    maven/shared/trunk/file-management/src/main/java/org/apache/maven/shared/model/fileset/util/FileSetManager.java

Modified: maven/shared/trunk/file-management/src/main/java/org/apache/maven/shared/model/fileset/util/FileSetManager.java
URL: http://svn.apache.org/viewvc/maven/shared/trunk/file-management/src/main/java/org/apache/maven/shared/model/fileset/util/FileSetManager.java?rev=661480&r1=661479&r2=661480&view=diff
==============================================================================
--- maven/shared/trunk/file-management/src/main/java/org/apache/maven/shared/model/fileset/util/FileSetManager.java (original)
+++ maven/shared/trunk/file-management/src/main/java/org/apache/maven/shared/model/fileset/util/FileSetManager.java Thu May 29 14:05:40 2008
@@ -299,14 +299,38 @@
 
             if ( file.exists() )
             {
-                if ( file.isDirectory() && ( fileSet.isFollowSymlinks() || !isSymlink( file ) ) )
+                if ( file.isDirectory() )
                 {
-                    if ( verbose && messages != null )
+                    if ( fileSet.isFollowSymlinks() || !isSymlink( file ) )
                     {
-                        messages.addInfoMessage( "Deleting directory: " + file ).flush();
+                        if ( verbose && messages != null )
+                        {
+                            messages.addInfoMessage( "Deleting directory: " + file ).flush();
+                        }
+    
+                        removeDir( file, fileSet.isFollowSymlinks(), throwsError, warnMessages );
+                    }
+                    else
+                    { // delete a symlink to a directory without follow
+                        if ( verbose && messages != null )
+                        {
+                            messages.addInfoMessage( "Deleting symlink to directory: " + file ).flush();
+                        }
+    
+                        if ( !file.delete() )
+                        {
+                            String message = "Unable to delete symlink " + file.getAbsolutePath();
+                            if ( throwsError )
+                            {
+                                throw new IOException( message );
+                            }
+
+                            if ( !warnMessages.contains( message ) )
+                            {
+                                warnMessages.add( message );
+                            }
+                        }
                     }
-
-                    removeDir( file, fileSet.isFollowSymlinks(), throwsError, warnMessages );
                 }
                 else
                 {