ayushtkn commented on code in PR #6678:
URL: https://github.com/apache/hadoop/pull/6678#discussion_r1567096724
##########
hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/ftp/TestFTPFileSystem.java:
##########
@@ -236,4 +241,52 @@ public void testFTPSetTimeout() {
ftp.setTimeout(client, conf);
assertEquals(client.getControlKeepAliveTimeout(), timeout);
}
-}
\ No newline at end of file
+
+
+ private static void touch(FileSystem fs, Path filePath)
+ throws IOException {
+ touch(fs, filePath, null);
+ }
+
+ private static void touch(FileSystem fs, Path path, byte[] data)
+ throws IOException {
+ FSDataOutputStream out = null;
+ try {
+ out = fs.create(path);
+ if (data != null) {
+ out.write(data);
+ }
+ } finally {
+ if (out != null) {
+ out.close();
+ }
+ }
+ }
+
+ /**
+ * Test renaming a file.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testRenameFileWithFullQualifiedPath() throws Exception {
+ BaseUser user = server.addUser("test", "password", new WritePermission());
+ Configuration configuration = new Configuration();
+ configuration.set("fs.defaultFS", "ftp:///");
+ configuration.set("fs.ftp.host", "localhost");
+ configuration.setInt("fs.ftp.host.port", server.getPort());
+ configuration.set("fs.ftp.user.localhost", user.getName());
+ configuration.set("fs.ftp.password.localhost", user.getPassword());
+ configuration.setBoolean("fs.ftp.impl.disable.cache", true);
+
+ FileSystem fs = FileSystem.get(configuration);
+
+
+ Path ftpDir = fs.makeQualified(new
Path(testDir.toAbsolutePath().toString()));
+ Path file1 = fs.makeQualified(new Path(ftpDir,
name.getMethodName().toLowerCase() + "1"));
+ Path file2 = fs.makeQualified(new Path(ftpDir,
name.getMethodName().toLowerCase() + "2"));
+ touch(fs, file1);
+ assertTrue(fs.rename(file1, file2));
+ }
+
Review Comment:
nit
avoid empty line
##########
hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/ftp/TestFTPFileSystem.java:
##########
@@ -60,6 +62,9 @@ public class TestFTPFileSystem {
@Rule
public Timeout testTimeout = new Timeout(180000, TimeUnit.MILLISECONDS);
+ @Rule
+ public TestName name = new TestName();
+
Review Comment:
this ain't required as such, it is just for the directory name sake, put it
directly over there rather than doing name.getMethodName
##########
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/ftp/FTPFileSystem.java:
##########
@@ -685,21 +685,21 @@ private boolean rename(FTPClient client, Path src, Path
dst)
throw new FileAlreadyExistsException("Destination path " + dst
+ " already exists");
}
- String parentSrc = absoluteSrc.getParent().toUri().toString();
- String parentDst = absoluteDst.getParent().toUri().toString();
+ URI parentSrc = absoluteSrc.getParent().toUri();
+ URI parentDst = absoluteDst.getParent().toUri();
if (isParentOf(absoluteSrc, absoluteDst)) {
throw new IOException("Cannot rename " + absoluteSrc + " under itself"
+ " : "+ absoluteDst);
}
- if (!parentSrc.equals(parentDst)) {
+ if (!parentSrc.toString().equals(parentDst.toString())) {
throw new IOException("Cannot rename source: " + absoluteSrc
+ " to " + absoluteDst
+ " -"+ E_SAME_DIRECTORY_ONLY);
}
String from = absoluteSrc.getName();
String to = absoluteDst.getName();
- client.changeWorkingDirectory(parentSrc);
+ client.changeWorkingDirectory(parentSrc.getPath().toString());
Review Comment:
``.toString()`` isn't required here
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]