[ 
https://issues.apache.org/jira/browse/HDFS-3592?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18074144#comment-18074144
 ] 

ASF GitHub Bot commented on HDFS-3592:
--------------------------------------

Hexiaoqiao commented on code in PR #8411:
URL: https://github.com/apache/hadoop/pull/8411#discussion_r3097782281


##########
hadoop-hdfs-project/hadoop-hdfs-native-client/src/main/native/libhdfs/hdfs.c:
##########
@@ -2759,24 +2763,48 @@ int hdfsRename(hdfsFS fs, const char *oldPath, const 
char *newPath)
         goto done;
     }
 
-    // Rename the file
-    // TODO: use rename2 here?  (See HDFS-3592)
-    jthr = invokeMethod(env, &jVal, INSTANCE, jFS, JC_FILE_SYSTEM,
-            "rename", JMETHOD2(JPARAM(HADOOP_PATH), JPARAM
-            (HADOOP_PATH), "Z"), jOldPath, jNewPath);
+    jthr = fetchEnumInstance(env, "org/apache/hadoop/fs/Options$Rename", 
"NONE",
+            &jRenameOptionsNone);
     if (jthr) {
         errno = printExceptionAndFree(env, jthr, PRINT_EXC_ALL,
-            "hdfsRename(oldPath=%s, newPath=%s): FileSystem#rename",
-            oldPath, newPath);
+            "hdfsRename: Options.Rename.NONE");

Review Comment:
   Got it.





> libhdfs should use ClientProtocol::rename2
> ------------------------------------------
>
>                 Key: HDFS-3592
>                 URL: https://issues.apache.org/jira/browse/HDFS-3592
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>    Affects Versions: 2.0.0-alpha, 3.0.0-alpha1
>            Reporter: Colin McCabe
>            Assignee: Colin McCabe
>            Priority: Minor
>              Labels: BB2015-05-TBR, pull-request-available
>         Attachments: HDFS-3592.001.patch
>
>
> It would be nice if libhdfs exposed rename2.  This version of rename is much 
> more verbose about any errors that occur-- it throws AccessControlException, 
> FileAlreadyExists, FileNotFoundException, ParentNotDirectoryException, etc.
> The original rename returns false in many distinct cases, making it ambiguous 
> exactly what the problem was.
> For something like fuse_dfs, it is very important to return the correct errno 
> code when an error has occurred.  rename2 would allow us to do that.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to