shawn created HADOOP-19130: ------------------------------ Summary: FTPFileSystem rename with full qualified path broken Key: HADOOP-19130 URL: https://issues.apache.org/jira/browse/HADOOP-19130 Project: Hadoop Common Issue Type: Bug Components: fs Affects Versions: 3.3.6, 3.3.4, 3.3.3, 0.20.2 Reporter: shawn Attachments: image-2024-03-27-09-59-12-381.png
When use fs shell to rename file in ftp server, it always get "Input/output error", when full qualified path is passed to it(eg. ftp://user:password@localhost/pathxxx), the reason is that changeWorkingDirectory command underneath is being passed a string with file:// uri prefix which will not be understand by ftp server。 !image-2024-03-27-09-59-12-381.png! the solution should be pass absoluteSrc.getParent().toUri().getPath().toString to avoid file:// uri prefix, like this: {code:java} --- a/FTPFileSystem.java +++ b/FTPFileSystem.java @@ -549,15 +549,15 @@ public class FTPFileSystem extends FileSystem { throw new IOException("Destination path " + dst + " already exist, cannot rename!"); } - String parentSrc = absoluteSrc.getParent().toUri().toString(); - String parentDst = absoluteDst.getParent().toUri().toString(); + URI parentSrc = absoluteSrc.getParent().toUri(); + URI parentDst = absoluteDst.getParent().toUri(); String from = src.getName(); String to = dst.getName(); - if (!parentSrc.equals(parentDst)) { + if (!parentSrc.toString().equals(parentDst.toString())) { throw new IOException("Cannot rename parent(source): " + parentSrc + ", parent(destination): " + parentDst); } - client.changeWorkingDirectory(parentSrc); + client.changeWorkingDirectory(parentSrc.getPath().toString()); boolean renamed = client.rename(from, to); return renamed; }{code} already related issue as follows https://issues.apache.org/jira/browse/HADOOP-8653 I wonder why this bug haven't be fixed -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: common-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-dev-h...@hadoop.apache.org