Browse Source

HADOOP-12776. Remove getaclstatus call for non-acl commands in getfacl. (Contributed by Brahma Reddy Battula)

Vinayakumar B 9 năm trước cách đây
mục cha
commit
c78740a979

+ 3 - 0
hadoop-common-project/hadoop-common/CHANGES.txt

@@ -1120,6 +1120,9 @@ Release 2.8.0 - UNRELEASED
     HADOOP-12699. TestKMS#testKMSProvider intermittently fails during
     'test rollover draining'. (Xiao Chen via wang)
 
+    HADOOP-12776. Remove getaclstatus call for non-acl commands in getfacl.
+    (Brahma Reddy Battula via vinayakumarb)
+
   OPTIMIZATIONS
 
     HADOOP-11785. Reduce the number of listStatus operation in distcp

+ 9 - 3
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/shell/AclCommands.java

@@ -86,9 +86,15 @@ class AclCommands extends FsCommand {
           (perm.getOtherAction().implies(FsAction.EXECUTE) ? "t" : "T"));
       }
 
-      AclStatus aclStatus = item.fs.getAclStatus(item.path);
-      List<AclEntry> entries = perm.getAclBit() ? aclStatus.getEntries()
-          : Collections.<AclEntry> emptyList();
+      AclStatus aclStatus = null;
+      List<AclEntry> entries = null;
+      if (perm.getAclBit()) {
+        aclStatus = item.fs.getAclStatus(item.path);
+        entries = aclStatus.getEntries();
+      } else {
+        aclStatus = null;
+        entries = Collections.<AclEntry> emptyList();
+      }
       ScopedAclEntries scopedEntries = new ScopedAclEntries(
         AclUtil.getAclFromPermAndEntries(perm, entries));
       printAclEntriesForSingleScope(aclStatus, perm,