Juan Yu created HDFS-8407:
-----------------------------

             Summary: 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


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)

Reply via email to