hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John Zhuge (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HADOOP-13191) FileSystem#listStatus should not return null
Date Sat, 21 May 2016 06:03:12 GMT
John Zhuge created HADOOP-13191:

             Summary: FileSystem#listStatus should not return null
                 Key: HADOOP-13191
                 URL: https://issues.apache.org/jira/browse/HADOOP-13191
             Project: Hadoop Common
          Issue Type: Bug
          Components: fs
    Affects Versions: 2.6.0
            Reporter: John Zhuge
            Assignee: John Zhuge
            Priority: Minor

This came out of discussion in HADOOP-12718. The {{FileSystem#listStatus}} contract does not
indicate {{null}} is a valid return and some callers do not test {{null}} before use:

    assertEquals("ls on an empty directory not of length 0", 0,

      FileStatus[] srcs = listStatus(src);
      for (FileStatus srcFile : srcs) {

      FileStatus[] fileStatuses = fileSystem.listStatus(path);
      if (excludeList != null && excludeList.size() > 0) {
        ArrayList<FileStatus> fileStatusList = new ArrayList<>();
        for(FileStatus status : fileStatuses) {

IMHO, there is no good reason for {{listStatus}} to return {{null}}. It should return empty
list instead.

To enforce the contract that null is an invalid return, update javadoc and consider Intellij
IDEA's @Nullable and @NotNull annotations.

So far, I am only aware of the following functions that can return null:
* RawLocalFileSystem#listStatus

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: common-dev-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-dev-help@hadoop.apache.org

View raw message