Author: ngn
Date: Fri Dec  5 13:50:21 2008
New Revision: 723886

URL: http://svn.apache.org/viewvc?rev=723886&view=rev
Log:
DELE should not delete directories (FTPSERVER-226). Thanks for the patch, Sai 
Pullabhotla!

Modified:
    
mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/DELE.java
    
mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/DeleteTest.java

Modified: 
mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/DELE.java
URL: 
http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/DELE.java?rev=723886&r1=723885&r2=723886&view=diff
==============================================================================
--- 
mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/DELE.java
 (original)
+++ 
mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/command/impl/DELE.java
 Fri Dec  5 13:50:21 2008
@@ -81,10 +81,17 @@
                     "DELE.invalid", fileName));
             return;
         }
-
+        
         // check file
         fileName = file.getAbsolutePath();
 
+        if (file.isDirectory()) {
+            session.write(LocalizedFtpReply.translate(session, request, 
context,
+                    FtpReply.REPLY_550_REQUESTED_ACTION_NOT_TAKEN,
+                    "DELE.invalid", fileName));
+            return;
+        }
+        
         if (!file.isRemovable()) {
             session.write(LocalizedFtpReply.translate(session, request, 
context,
                     FtpReply.REPLY_450_REQUESTED_FILE_ACTION_NOT_TAKEN,

Modified: 
mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/DeleteTest.java
URL: 
http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/DeleteTest.java?rev=723886&r1=723885&r2=723886&view=diff
==============================================================================
--- 
mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/DeleteTest.java
 (original)
+++ 
mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/DeleteTest.java
 Fri Dec  5 13:50:21 2008
@@ -90,10 +90,12 @@
         TEST_DIR1.mkdirs();
 
         assertTrue(TEST_DIR1.exists());
+        
+        assertEquals(550, client.sendCommand("DELE " + TEST_DIR1.getName()));
 
-        assertTrue(client.deleteFile(TEST_DIR1.getName()));
+        assertFalse(client.deleteFile(TEST_DIR1.getName()));
 
-        assertFalse(TEST_DIR1.exists());
+        assertTrue(TEST_DIR1.exists());
     }
 
     public void testDeleteDirWithFile() throws Exception {
@@ -103,6 +105,8 @@
         assertTrue(TEST_DIR1.exists());
         assertTrue(TEST_FILE_IN_DIR1.exists());
 
+        assertEquals(550, client.sendCommand("DELE " + TEST_DIR1.getName()));
+
         assertFalse(client.deleteFile(TEST_DIR1.getName()));
 
         assertTrue(TEST_DIR1.exists());


Reply via email to