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"));
}