[ https://issues.apache.org/jira/browse/HDFS-8407?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14553660#comment-14553660 ]
Masatake Iwasaki commented on HDFS-8407: ---------------------------------------- True but I think it is safer to set errno just before return. It is possible that some function call which (or whose downstream) set errno is added before return in future. > libhdfs hdfsListDirectory() API has different behavior than documentation > ------------------------------------------------------------------------- > > Key: HDFS-8407 > URL: https://issues.apache.org/jira/browse/HDFS-8407 > Project: Hadoop HDFS > Issue Type: Bug > Components: HDFS > Reporter: Juan Yu > Assignee: Masatake Iwasaki > Attachments: HDFS-8407.001.patch, HDFS-8407.002.patch, > HDFS-8407.003.patch > > > The documentation says it returns NULL on error, but it could also return > NULL when the directory is empty. > /** > * hdfsListDirectory - Get list of files/directories for a given > * directory-path. hdfsFreeFileInfo should be called to deallocate > memory. > * @param fs The configured filesystem handle. > * @param path The path of the directory. > * @param numEntries Set to the number of files/directories in path. > * @return Returns a dynamically-allocated array of hdfsFileInfo > * objects; NULL on error. > */ > {code} > hdfsFileInfo *pathList = NULL; > ... > //Figure out the number of entries in that directory > jPathListSize = (*env)->GetArrayLength(env, jPathList); > if (jPathListSize == 0) { > ret = 0; > goto done; > } > ... > if (ret) { > hdfsFreeFileInfo(pathList, jPathListSize); > errno = ret; > return NULL; > } > *numEntries = jPathListSize; > return pathList; > {code} > Either change the implementation to match the doc, or fix the doc to match > the implementation. -- This message was sent by Atlassian JIRA (v6.3.4#6332)