fixed testDeleteDontFollowSymlinks() unit test, which failed to delete a symlink linking to its parent directory due to recursion

git-svn-id: https://svn.apache.org/repos/asf/maven/shared/trunk@661480 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/maven/shared/model/fileset/util/FileSetManager.java b/src/main/java/org/apache/maven/shared/model/fileset/util/FileSetManager.java
index b6329bd..b2149aa 100644
--- a/src/main/java/org/apache/maven/shared/model/fileset/util/FileSetManager.java
+++ b/src/main/java/org/apache/maven/shared/model/fileset/util/FileSetManager.java
@@ -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 );
+                            }
 
-                    removeDir( file, fileSet.isFollowSymlinks(), throwsError, warnMessages );
+                            if ( !warnMessages.contains( message ) )
+                            {
+                                warnMessages.add( message );
+                            }
+                        }
+                    }
                 }
                 else
                 {