You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by ng...@apache.org on 2008/03/28 10:04:22 UTC

svn commit: r642151 - in /mina/ftpserver/trunk/core/src: main/java/org/apache/ftpserver/filesystem/ test/java/org/apache/ftpserver/clienttests/

Author: ngn
Date: Fri Mar 28 02:04:10 2008
New Revision: 642151

URL: http://svn.apache.org/viewvc?rev=642151&view=rev
Log:
Fixing issue with us trimming directory and file names (FTPSERVER-118)

Modified:
    mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/filesystem/NativeFileObject.java
    mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/CdTest.java
    mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/RetrieveTest.java
    mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/StoreTest.java

Modified: mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/filesystem/NativeFileObject.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/filesystem/NativeFileObject.java?rev=642151&r1=642150&r2=642151&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/filesystem/NativeFileObject.java (original)
+++ mina/ftpserver/trunk/core/src/main/java/org/apache/ftpserver/filesystem/NativeFileObject.java Fri Mar 28 02:04:10 2008
@@ -58,7 +58,7 @@
         if (file == null) {
             throw new IllegalArgumentException("file can not be null");
         }
-        fileName = fileName.trim();
+
         if (fileName.length() == 0) {
             throw new IllegalArgumentException("fileName can not be empty");
         } else if (fileName.charAt(0) != '/') {
@@ -382,9 +382,6 @@
             String fileName, boolean caseInsensitive) {
 
         // get the starting directory
-        rootDir = rootDir.trim();
-        fileName = fileName.trim();
-
         rootDir = normalizeSeparateChar(rootDir);
         if (rootDir.charAt(rootDir.length() - 1) != '/') {
             rootDir += '/';
@@ -396,7 +393,6 @@
             if (currDir == null) {
                 currDir = "/";
             }
-            currDir = currDir.trim();
             if (currDir.length() == 0) {
                 currDir = "/";
             }
@@ -424,7 +420,7 @@
         // in this loop resArg will never end with '/'
         StringTokenizer st = new StringTokenizer(fileName, "/");
         while (st.hasMoreTokens()) {
-            String tok = st.nextToken().trim();
+            String tok = st.nextToken();
 
             // . => current directory
             if (tok.equals(".")) {

Modified: mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/CdTest.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/CdTest.java?rev=642151&r1=642150&r2=642151&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/CdTest.java (original)
+++ mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/CdTest.java Fri Mar 28 02:04:10 2008
@@ -25,6 +25,7 @@
 public class CdTest extends ClientTestTemplate {
     protected static final File TEST_DIR1 = new File(ROOT_DIR, "dir1");
     protected static final File TEST_DIR2 = new File(ROOT_DIR, "dir2");
+    protected static final File TEST_DIR_WITH_LEADING_SPACE = new File(ROOT_DIR, " leadingspace");
     protected static final File TEST_DIR_IN_DIR1 = new File(TEST_DIR1, "dir3");
 
     /* (non-Javadoc)
@@ -35,9 +36,11 @@
 
         TEST_DIR1.mkdirs();
         TEST_DIR2.mkdirs();
+        TEST_DIR_WITH_LEADING_SPACE.mkdirs();
         TEST_DIR_IN_DIR1.mkdirs();
         assertTrue(TEST_DIR1.exists());
         assertTrue(TEST_DIR2.exists());
+        assertTrue(TEST_DIR_WITH_LEADING_SPACE.exists());
         assertTrue(TEST_DIR_IN_DIR1.exists());
         
         client.login(ADMIN_USERNAME, ADMIN_PASSWORD);
@@ -54,6 +57,9 @@
         assertTrue(client.changeWorkingDirectory('/' + TEST_DIR2.getName()));
         assertEquals("/dir2", client.printWorkingDirectory());
 
+        assertTrue(client.changeWorkingDirectory("/ leadingspace"));
+        assertEquals("/ leadingspace", client.printWorkingDirectory());
+        
         assertTrue(client.changeWorkingDirectory("/"));
         assertEquals("/", client.printWorkingDirectory());
 

Modified: mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/RetrieveTest.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/RetrieveTest.java?rev=642151&r1=642150&r2=642151&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/RetrieveTest.java (original)
+++ mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/RetrieveTest.java Fri Mar 28 02:04:10 2008
@@ -27,7 +27,10 @@
 
 public class RetrieveTest extends ClientTestTemplate {
     private static final String TEST_FILENAME = "test.txt";
+    private static final String TEST_FILENAME_WITH_LEADING_SPACE = " leading.txt";
+    
     private static final File TEST_FILE = new File(ROOT_DIR, TEST_FILENAME);
+    private static final File TEST_FILE_WITH_LEADING_SPACE = new File(ROOT_DIR, TEST_FILENAME_WITH_LEADING_SPACE);
 
     private static final String EOL = System.getProperty("line.separator"); 
     
@@ -57,6 +60,19 @@
         TestUtil.assertArraysEqual(testData, baos.toByteArray());
     }
 
+    public void testRetrieveWithLeadingSpace() throws Exception {
+        
+        TestUtil.writeDataToFile(TEST_FILE_WITH_LEADING_SPACE, testData);
+
+        assertTrue(TEST_FILE_WITH_LEADING_SPACE.exists());
+
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        assertTrue(client.retrieveFile(TEST_FILENAME_WITH_LEADING_SPACE, baos));
+        
+        assertTrue(TEST_FILE_WITH_LEADING_SPACE.exists());
+        TestUtil.assertArraysEqual(testData, baos.toByteArray());
+    }
+    
     public void testRetrieveNoFileName() throws Exception {
         assertEquals(501, client.sendCommand("RETR"));
     }

Modified: mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/StoreTest.java
URL: http://svn.apache.org/viewvc/mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/StoreTest.java?rev=642151&r1=642150&r2=642151&view=diff
==============================================================================
--- mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/StoreTest.java (original)
+++ mina/ftpserver/trunk/core/src/test/java/org/apache/ftpserver/clienttests/StoreTest.java Fri Mar 28 02:04:10 2008
@@ -32,6 +32,7 @@
     private static final String ENCODING = "UTF-8";
 
     private static final String TEST_FILENAME = "test.txt";
+    private static final String TEST_FILENAME_WITH_LEADING_SPACE = " leading.txt";
 
     private static final int SKIP_LEN = 4;
     
@@ -64,6 +65,16 @@
         TestUtil.assertFileEqual(testData, testFile);
     }
 
+
+    public void testStoreWithLeadingSpace() throws Exception {
+        File testFile = new File(ROOT_DIR, TEST_FILENAME_WITH_LEADING_SPACE);
+
+        assertTrue(client.storeFile(TEST_FILENAME_WITH_LEADING_SPACE, new ByteArrayInputStream(testData)));
+        
+        assertTrue(testFile.exists());
+        TestUtil.assertFileEqual(testData, testFile);
+    }
+    
     public void testStoreNoFileName() throws Exception {
         assertEquals(501, client.sendCommand("STOR"));
     }