You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by sh...@apache.org on 2018/01/19 01:11:03 UTC

hadoop git commit: HADOOP-13508. FsPermission string constructor does not recognize sticky bit. Contributed by Atul Sikaria.

Repository: hadoop
Updated Branches:
  refs/heads/branch-2.7 314f09d17 -> d37b73c51


HADOOP-13508. FsPermission string constructor does not recognize sticky bit. Contributed by Atul Sikaria.

(cherry picked from commit 84ec079911b3623394e2664a28333151ce086007)

Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/d37b73c5
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/d37b73c5
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/d37b73c5

Branch: refs/heads/branch-2.7
Commit: d37b73c517f5b17048a0c0072c5035b80db8a4a9
Parents: 314f09d
Author: Wei-Chiu Chuang <we...@apache.org>
Authored: Thu Dec 15 13:49:02 2016 -0800
Committer: Konstantin V Shvachko <sh...@apache.org>
Committed: Thu Jan 18 17:08:45 2018 -0800

----------------------------------------------------------------------
 hadoop-common-project/hadoop-common/CHANGES.txt |    3 +
 .../hadoop/fs/permission/FsPermission.java      |    2 +-
 .../apache/hadoop/fs/permission/RawParser.java  |   44 +
 .../hadoop/fs/permission/TestFsPermission.java  | 1063 +++++++++---------
 4 files changed, 589 insertions(+), 523 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/d37b73c5/hadoop-common-project/hadoop-common/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt
index 81d7fda..8bc45d1 100644
--- a/hadoop-common-project/hadoop-common/CHANGES.txt
+++ b/hadoop-common-project/hadoop-common/CHANGES.txt
@@ -37,6 +37,9 @@ Release 2.7.6 - UNRELEASED
     HADOOP-13375. o.a.h.security.TestGroupsCaching.testBackgroundRefreshCounters
     seems flaky. (Weiwei Yang via Mingliang Liu, shv)
 
+    HADOOP-13508. FsPermission string constructor does not recognize
+    sticky bit. (Atul Sikaria via Wei-Chiu Chuang, shv)
+
 Release 2.7.5 - 2017-12-14
 
   INCOMPATIBLE CHANGES

http://git-wip-us.apache.org/repos/asf/hadoop/blob/d37b73c5/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/FsPermission.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/FsPermission.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/FsPermission.java
index 0258293..a816396 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/FsPermission.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/FsPermission.java
@@ -103,7 +103,7 @@ public class FsPermission implements Writable {
    * @throws IllegalArgumentException if <code>mode</code> is invalid
    */
   public FsPermission(String mode) {
-    this(new UmaskParser(mode).getUMask());
+    this(new RawParser(mode).getPermission());
   }
 
   /** Return user {@link FsAction}. */

http://git-wip-us.apache.org/repos/asf/hadoop/blob/d37b73c5/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/RawParser.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/RawParser.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/RawParser.java
new file mode 100644
index 0000000..3bbe9cb
--- /dev/null
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/permission/RawParser.java
@@ -0,0 +1,44 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.fs.permission;
+
+import java.util.regex.Pattern;
+
+import org.apache.hadoop.classification.InterfaceAudience;
+import org.apache.hadoop.classification.InterfaceStability;
+
+@InterfaceAudience.Private
+@InterfaceStability.Unstable
+class RawParser extends PermissionParser {
+  private static Pattern rawOctalPattern =
+      Pattern.compile("^\\s*([01]?)([0-7]{3})\\s*$");
+  private static Pattern rawNormalPattern =
+      Pattern.compile("\\G\\s*([ugoa]*)([+=-]+)([rwxt]*)([,\\s]*)\\s*");
+
+  private short permission;
+
+  public RawParser(String modeStr) throws IllegalArgumentException {
+    super(modeStr, rawNormalPattern, rawOctalPattern);
+    permission = (short)combineModes(0, false);
+  }
+
+  public short getPermission() {
+    return permission;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/hadoop/blob/d37b73c5/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/permission/TestFsPermission.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/permission/TestFsPermission.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/permission/TestFsPermission.java
index 45d6e1a..fd86bcd 100644
--- a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/permission/TestFsPermission.java
+++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/permission/TestFsPermission.java
@@ -56,6 +56,8 @@ public class TestFsPermission extends TestCase {
   public void testConvertingPermissions() {
     for(short s = 0; s <= 01777; s++) {
       assertEquals(s, new FsPermission(s).toShort());
+      // check string formats
+      assertEquals(s, new FsPermission(String.format("%03o", s)).toShort());
     }
 
     short s = 0;
@@ -75,6 +77,7 @@ public class TestFsPermission extends TestCase {
         }
       }
     }
+    assertEquals(02000, s);
   }
 
   public void testSpecialBitsToString() {
@@ -129,6 +132,20 @@ public class TestFsPermission extends TestCase {
     }
   }
 
+  public void testSymbolicPermission() {
+    for (int i = 0; i < SYMBOLIC.length; ++i) {
+      short val = 0777;
+      val &= ~Short.valueOf(SYMBOLIC[i][1], 8);
+      assertEquals(val, new FsPermission(SYMBOLIC[i][0]).toShort());
+    }
+    // add sticky bit to "other" when exec enabled
+    for (int i = 1; i < SYMBOLIC.length; i += 2) {
+      short val = 01777;
+      val &= ~Short.valueOf(SYMBOLIC[i][1], 8);
+      assertEquals(val, new FsPermission(SYMBOLIC[i][0] + "t").toShort());
+    }
+  }
+
   public void testUMaskParser() throws IOException {
     Configuration conf = new Configuration();
     
@@ -150,529 +167,13 @@ public class TestFsPermission extends TestCase {
     Configuration conf = new Configuration();
     
     // Test some symbolic to octal settings
-    // Symbolic umask list is generated in linux shell using by the command:
-    // umask 0; umask <octal number>; umask -S
-    String [][] symbolic = new String [][] { 
-        {"a+rw", "111",},
-        {"u=rwx,g=rwx,o=rwx", "0",},
-        {"u=rwx,g=rwx,o=rw", "1",},
-        {"u=rwx,g=rwx,o=rx", "2",},
-        {"u=rwx,g=rwx,o=r", "3",},
-        {"u=rwx,g=rwx,o=wx", "4",},
-        {"u=rwx,g=rwx,o=w", "5",},
-        {"u=rwx,g=rwx,o=x", "6",},
-        {"u=rwx,g=rwx,o=", "7",},
-        {"u=rwx,g=rw,o=rwx", "10",},
-        {"u=rwx,g=rw,o=rw", "11",},
-        {"u=rwx,g=rw,o=rx", "12",},
-        {"u=rwx,g=rw,o=r", "13",},
-        {"u=rwx,g=rw,o=wx", "14",},
-        {"u=rwx,g=rw,o=w", "15",},
-        {"u=rwx,g=rw,o=x", "16",},
-        {"u=rwx,g=rw,o=", "17",},
-        {"u=rwx,g=rx,o=rwx", "20",},
-        {"u=rwx,g=rx,o=rw", "21",},
-        {"u=rwx,g=rx,o=rx", "22",},
-        {"u=rwx,g=rx,o=r", "23",},
-        {"u=rwx,g=rx,o=wx", "24",},
-        {"u=rwx,g=rx,o=w", "25",},
-        {"u=rwx,g=rx,o=x", "26",},
-        {"u=rwx,g=rx,o=", "27",},
-        {"u=rwx,g=r,o=rwx", "30",},
-        {"u=rwx,g=r,o=rw", "31",},
-        {"u=rwx,g=r,o=rx", "32",},
-        {"u=rwx,g=r,o=r", "33",},
-        {"u=rwx,g=r,o=wx", "34",},
-        {"u=rwx,g=r,o=w", "35",},
-        {"u=rwx,g=r,o=x", "36",},
-        {"u=rwx,g=r,o=", "37",},
-        {"u=rwx,g=wx,o=rwx", "40",},
-        {"u=rwx,g=wx,o=rw", "41",},
-        {"u=rwx,g=wx,o=rx", "42",},
-        {"u=rwx,g=wx,o=r", "43",},
-        {"u=rwx,g=wx,o=wx", "44",},
-        {"u=rwx,g=wx,o=w", "45",},
-        {"u=rwx,g=wx,o=x", "46",},
-        {"u=rwx,g=wx,o=", "47",},
-        {"u=rwx,g=w,o=rwx", "50",},
-        {"u=rwx,g=w,o=rw", "51",},
-        {"u=rwx,g=w,o=rx", "52",},
-        {"u=rwx,g=w,o=r", "53",},
-        {"u=rwx,g=w,o=wx", "54",},
-        {"u=rwx,g=w,o=w", "55",},
-        {"u=rwx,g=w,o=x", "56",},
-        {"u=rwx,g=w,o=", "57",},
-        {"u=rwx,g=x,o=rwx", "60",},
-        {"u=rwx,g=x,o=rw", "61",},
-        {"u=rwx,g=x,o=rx", "62",},
-        {"u=rwx,g=x,o=r", "63",},
-        {"u=rwx,g=x,o=wx", "64",},
-        {"u=rwx,g=x,o=w", "65",},
-        {"u=rwx,g=x,o=x", "66",},
-        {"u=rwx,g=x,o=", "67",},
-        {"u=rwx,g=,o=rwx", "70",},
-        {"u=rwx,g=,o=rw", "71",},
-        {"u=rwx,g=,o=rx", "72",},
-        {"u=rwx,g=,o=r", "73",},
-        {"u=rwx,g=,o=wx", "74",},
-        {"u=rwx,g=,o=w", "75",},
-        {"u=rwx,g=,o=x", "76",},
-        {"u=rwx,g=,o=", "77",},
-        {"u=rw,g=rwx,o=rwx", "100",},
-        {"u=rw,g=rwx,o=rw", "101",},
-        {"u=rw,g=rwx,o=rx", "102",},
-        {"u=rw,g=rwx,o=r", "103",},
-        {"u=rw,g=rwx,o=wx", "104",},
-        {"u=rw,g=rwx,o=w", "105",},
-        {"u=rw,g=rwx,o=x", "106",},
-        {"u=rw,g=rwx,o=", "107",},
-        {"u=rw,g=rw,o=rwx", "110",},
-        {"u=rw,g=rw,o=rw", "111",},
-        {"u=rw,g=rw,o=rx", "112",},
-        {"u=rw,g=rw,o=r", "113",},
-        {"u=rw,g=rw,o=wx", "114",},
-        {"u=rw,g=rw,o=w", "115",},
-        {"u=rw,g=rw,o=x", "116",},
-        {"u=rw,g=rw,o=", "117",},
-        {"u=rw,g=rx,o=rwx", "120",},
-        {"u=rw,g=rx,o=rw", "121",},
-        {"u=rw,g=rx,o=rx", "122",},
-        {"u=rw,g=rx,o=r", "123",},
-        {"u=rw,g=rx,o=wx", "124",},
-        {"u=rw,g=rx,o=w", "125",},
-        {"u=rw,g=rx,o=x", "126",},
-        {"u=rw,g=rx,o=", "127",},
-        {"u=rw,g=r,o=rwx", "130",},
-        {"u=rw,g=r,o=rw", "131",},
-        {"u=rw,g=r,o=rx", "132",},
-        {"u=rw,g=r,o=r", "133",},
-        {"u=rw,g=r,o=wx", "134",},
-        {"u=rw,g=r,o=w", "135",},
-        {"u=rw,g=r,o=x", "136",},
-        {"u=rw,g=r,o=", "137",},
-        {"u=rw,g=wx,o=rwx", "140",},
-        {"u=rw,g=wx,o=rw", "141",},
-        {"u=rw,g=wx,o=rx", "142",},
-        {"u=rw,g=wx,o=r", "143",},
-        {"u=rw,g=wx,o=wx", "144",},
-        {"u=rw,g=wx,o=w", "145",},
-        {"u=rw,g=wx,o=x", "146",},
-        {"u=rw,g=wx,o=", "147",},
-        {"u=rw,g=w,o=rwx", "150",},
-        {"u=rw,g=w,o=rw", "151",},
-        {"u=rw,g=w,o=rx", "152",},
-        {"u=rw,g=w,o=r", "153",},
-        {"u=rw,g=w,o=wx", "154",},
-        {"u=rw,g=w,o=w", "155",},
-        {"u=rw,g=w,o=x", "156",},
-        {"u=rw,g=w,o=", "157",},
-        {"u=rw,g=x,o=rwx", "160",},
-        {"u=rw,g=x,o=rw", "161",},
-        {"u=rw,g=x,o=rx", "162",},
-        {"u=rw,g=x,o=r", "163",},
-        {"u=rw,g=x,o=wx", "164",},
-        {"u=rw,g=x,o=w", "165",},
-        {"u=rw,g=x,o=x", "166",},
-        {"u=rw,g=x,o=", "167",},
-        {"u=rw,g=,o=rwx", "170",},
-        {"u=rw,g=,o=rw", "171",},
-        {"u=rw,g=,o=rx", "172",},
-        {"u=rw,g=,o=r", "173",},
-        {"u=rw,g=,o=wx", "174",},
-        {"u=rw,g=,o=w", "175",},
-        {"u=rw,g=,o=x", "176",},
-        {"u=rw,g=,o=", "177",},
-        {"u=rx,g=rwx,o=rwx", "200",},
-        {"u=rx,g=rwx,o=rw", "201",},
-        {"u=rx,g=rwx,o=rx", "202",},
-        {"u=rx,g=rwx,o=r", "203",},
-        {"u=rx,g=rwx,o=wx", "204",},
-        {"u=rx,g=rwx,o=w", "205",},
-        {"u=rx,g=rwx,o=x", "206",},
-        {"u=rx,g=rwx,o=", "207",},
-        {"u=rx,g=rw,o=rwx", "210",},
-        {"u=rx,g=rw,o=rw", "211",},
-        {"u=rx,g=rw,o=rx", "212",},
-        {"u=rx,g=rw,o=r", "213",},
-        {"u=rx,g=rw,o=wx", "214",},
-        {"u=rx,g=rw,o=w", "215",},
-        {"u=rx,g=rw,o=x", "216",},
-        {"u=rx,g=rw,o=", "217",},
-        {"u=rx,g=rx,o=rwx", "220",},
-        {"u=rx,g=rx,o=rw", "221",},
-        {"u=rx,g=rx,o=rx", "222",},
-        {"u=rx,g=rx,o=r", "223",},
-        {"u=rx,g=rx,o=wx", "224",},
-        {"u=rx,g=rx,o=w", "225",},
-        {"u=rx,g=rx,o=x", "226",},
-        {"u=rx,g=rx,o=", "227",},
-        {"u=rx,g=r,o=rwx", "230",},
-        {"u=rx,g=r,o=rw", "231",},
-        {"u=rx,g=r,o=rx", "232",},
-        {"u=rx,g=r,o=r", "233",},
-        {"u=rx,g=r,o=wx", "234",},
-        {"u=rx,g=r,o=w", "235",},
-        {"u=rx,g=r,o=x", "236",},
-        {"u=rx,g=r,o=", "237",},
-        {"u=rx,g=wx,o=rwx", "240",},
-        {"u=rx,g=wx,o=rw", "241",},
-        {"u=rx,g=wx,o=rx", "242",},
-        {"u=rx,g=wx,o=r", "243",},
-        {"u=rx,g=wx,o=wx", "244",},
-        {"u=rx,g=wx,o=w", "245",},
-        {"u=rx,g=wx,o=x", "246",},
-        {"u=rx,g=wx,o=", "247",},
-        {"u=rx,g=w,o=rwx", "250",},
-        {"u=rx,g=w,o=rw", "251",},
-        {"u=rx,g=w,o=rx", "252",},
-        {"u=rx,g=w,o=r", "253",},
-        {"u=rx,g=w,o=wx", "254",},
-        {"u=rx,g=w,o=w", "255",},
-        {"u=rx,g=w,o=x", "256",},
-        {"u=rx,g=w,o=", "257",},
-        {"u=rx,g=x,o=rwx", "260",},
-        {"u=rx,g=x,o=rw", "261",},
-        {"u=rx,g=x,o=rx", "262",},
-        {"u=rx,g=x,o=r", "263",},
-        {"u=rx,g=x,o=wx", "264",},
-        {"u=rx,g=x,o=w", "265",},
-        {"u=rx,g=x,o=x", "266",},
-        {"u=rx,g=x,o=", "267",},
-        {"u=rx,g=,o=rwx", "270",},
-        {"u=rx,g=,o=rw", "271",},
-        {"u=rx,g=,o=rx", "272",},
-        {"u=rx,g=,o=r", "273",},
-        {"u=rx,g=,o=wx", "274",},
-        {"u=rx,g=,o=w", "275",},
-        {"u=rx,g=,o=x", "276",},
-        {"u=rx,g=,o=", "277",},
-        {"u=r,g=rwx,o=rwx", "300",},
-        {"u=r,g=rwx,o=rw", "301",},
-        {"u=r,g=rwx,o=rx", "302",},
-        {"u=r,g=rwx,o=r", "303",},
-        {"u=r,g=rwx,o=wx", "304",},
-        {"u=r,g=rwx,o=w", "305",},
-        {"u=r,g=rwx,o=x", "306",},
-        {"u=r,g=rwx,o=", "307",},
-        {"u=r,g=rw,o=rwx", "310",},
-        {"u=r,g=rw,o=rw", "311",},
-        {"u=r,g=rw,o=rx", "312",},
-        {"u=r,g=rw,o=r", "313",},
-        {"u=r,g=rw,o=wx", "314",},
-        {"u=r,g=rw,o=w", "315",},
-        {"u=r,g=rw,o=x", "316",},
-        {"u=r,g=rw,o=", "317",},
-        {"u=r,g=rx,o=rwx", "320",},
-        {"u=r,g=rx,o=rw", "321",},
-        {"u=r,g=rx,o=rx", "322",},
-        {"u=r,g=rx,o=r", "323",},
-        {"u=r,g=rx,o=wx", "324",},
-        {"u=r,g=rx,o=w", "325",},
-        {"u=r,g=rx,o=x", "326",},
-        {"u=r,g=rx,o=", "327",},
-        {"u=r,g=r,o=rwx", "330",},
-        {"u=r,g=r,o=rw", "331",},
-        {"u=r,g=r,o=rx", "332",},
-        {"u=r,g=r,o=r", "333",},
-        {"u=r,g=r,o=wx", "334",},
-        {"u=r,g=r,o=w", "335",},
-        {"u=r,g=r,o=x", "336",},
-        {"u=r,g=r,o=", "337",},
-        {"u=r,g=wx,o=rwx", "340",},
-        {"u=r,g=wx,o=rw", "341",},
-        {"u=r,g=wx,o=rx", "342",},
-        {"u=r,g=wx,o=r", "343",},
-        {"u=r,g=wx,o=wx", "344",},
-        {"u=r,g=wx,o=w", "345",},
-        {"u=r,g=wx,o=x", "346",},
-        {"u=r,g=wx,o=", "347",},
-        {"u=r,g=w,o=rwx", "350",},
-        {"u=r,g=w,o=rw", "351",},
-        {"u=r,g=w,o=rx", "352",},
-        {"u=r,g=w,o=r", "353",},
-        {"u=r,g=w,o=wx", "354",},
-        {"u=r,g=w,o=w", "355",},
-        {"u=r,g=w,o=x", "356",},
-        {"u=r,g=w,o=", "357",},
-        {"u=r,g=x,o=rwx", "360",},
-        {"u=r,g=x,o=rw", "361",},
-        {"u=r,g=x,o=rx", "362",},
-        {"u=r,g=x,o=r", "363",},
-        {"u=r,g=x,o=wx", "364",},
-        {"u=r,g=x,o=w", "365",},
-        {"u=r,g=x,o=x", "366",},
-        {"u=r,g=x,o=", "367",},
-        {"u=r,g=,o=rwx", "370",},
-        {"u=r,g=,o=rw", "371",},
-        {"u=r,g=,o=rx", "372",},
-        {"u=r,g=,o=r", "373",},
-        {"u=r,g=,o=wx", "374",},
-        {"u=r,g=,o=w", "375",},
-        {"u=r,g=,o=x", "376",},
-        {"u=r,g=,o=", "377",},
-        {"u=wx,g=rwx,o=rwx", "400",},
-        {"u=wx,g=rwx,o=rw", "401",},
-        {"u=wx,g=rwx,o=rx", "402",},
-        {"u=wx,g=rwx,o=r", "403",},
-        {"u=wx,g=rwx,o=wx", "404",},
-        {"u=wx,g=rwx,o=w", "405",},
-        {"u=wx,g=rwx,o=x", "406",},
-        {"u=wx,g=rwx,o=", "407",},
-        {"u=wx,g=rw,o=rwx", "410",},
-        {"u=wx,g=rw,o=rw", "411",},
-        {"u=wx,g=rw,o=rx", "412",},
-        {"u=wx,g=rw,o=r", "413",},
-        {"u=wx,g=rw,o=wx", "414",},
-        {"u=wx,g=rw,o=w", "415",},
-        {"u=wx,g=rw,o=x", "416",},
-        {"u=wx,g=rw,o=", "417",},
-        {"u=wx,g=rx,o=rwx", "420",},
-        {"u=wx,g=rx,o=rw", "421",},
-        {"u=wx,g=rx,o=rx", "422",},
-        {"u=wx,g=rx,o=r", "423",},
-        {"u=wx,g=rx,o=wx", "424",},
-        {"u=wx,g=rx,o=w", "425",},
-        {"u=wx,g=rx,o=x", "426",},
-        {"u=wx,g=rx,o=", "427",},
-        {"u=wx,g=r,o=rwx", "430",},
-        {"u=wx,g=r,o=rw", "431",},
-        {"u=wx,g=r,o=rx", "432",},
-        {"u=wx,g=r,o=r", "433",},
-        {"u=wx,g=r,o=wx", "434",},
-        {"u=wx,g=r,o=w", "435",},
-        {"u=wx,g=r,o=x", "436",},
-        {"u=wx,g=r,o=", "437",},
-        {"u=wx,g=wx,o=rwx", "440",},
-        {"u=wx,g=wx,o=rw", "441",},
-        {"u=wx,g=wx,o=rx", "442",},
-        {"u=wx,g=wx,o=r", "443",},
-        {"u=wx,g=wx,o=wx", "444",},
-        {"u=wx,g=wx,o=w", "445",},
-        {"u=wx,g=wx,o=x", "446",},
-        {"u=wx,g=wx,o=", "447",},
-        {"u=wx,g=w,o=rwx", "450",},
-        {"u=wx,g=w,o=rw", "451",},
-        {"u=wx,g=w,o=rx", "452",},
-        {"u=wx,g=w,o=r", "453",},
-        {"u=wx,g=w,o=wx", "454",},
-        {"u=wx,g=w,o=w", "455",},
-        {"u=wx,g=w,o=x", "456",},
-        {"u=wx,g=w,o=", "457",},
-        {"u=wx,g=x,o=rwx", "460",},
-        {"u=wx,g=x,o=rw", "461",},
-        {"u=wx,g=x,o=rx", "462",},
-        {"u=wx,g=x,o=r", "463",},
-        {"u=wx,g=x,o=wx", "464",},
-        {"u=wx,g=x,o=w", "465",},
-        {"u=wx,g=x,o=x", "466",},
-        {"u=wx,g=x,o=", "467",},
-        {"u=wx,g=,o=rwx", "470",},
-        {"u=wx,g=,o=rw", "471",},
-        {"u=wx,g=,o=rx", "472",},
-        {"u=wx,g=,o=r", "473",},
-        {"u=wx,g=,o=wx", "474",},
-        {"u=wx,g=,o=w", "475",},
-        {"u=wx,g=,o=x", "476",},
-        {"u=wx,g=,o=", "477",},
-        {"u=w,g=rwx,o=rwx", "500",},
-        {"u=w,g=rwx,o=rw", "501",},
-        {"u=w,g=rwx,o=rx", "502",},
-        {"u=w,g=rwx,o=r", "503",},
-        {"u=w,g=rwx,o=wx", "504",},
-        {"u=w,g=rwx,o=w", "505",},
-        {"u=w,g=rwx,o=x", "506",},
-        {"u=w,g=rwx,o=", "507",},
-        {"u=w,g=rw,o=rwx", "510",},
-        {"u=w,g=rw,o=rw", "511",},
-        {"u=w,g=rw,o=rx", "512",},
-        {"u=w,g=rw,o=r", "513",},
-        {"u=w,g=rw,o=wx", "514",},
-        {"u=w,g=rw,o=w", "515",},
-        {"u=w,g=rw,o=x", "516",},
-        {"u=w,g=rw,o=", "517",},
-        {"u=w,g=rx,o=rwx", "520",},
-        {"u=w,g=rx,o=rw", "521",},
-        {"u=w,g=rx,o=rx", "522",},
-        {"u=w,g=rx,o=r", "523",},
-        {"u=w,g=rx,o=wx", "524",},
-        {"u=w,g=rx,o=w", "525",},
-        {"u=w,g=rx,o=x", "526",},
-        {"u=w,g=rx,o=", "527",},
-        {"u=w,g=r,o=rwx", "530",},
-        {"u=w,g=r,o=rw", "531",},
-        {"u=w,g=r,o=rx", "532",},
-        {"u=w,g=r,o=r", "533",},
-        {"u=w,g=r,o=wx", "534",},
-        {"u=w,g=r,o=w", "535",},
-        {"u=w,g=r,o=x", "536",},
-        {"u=w,g=r,o=", "537",},
-        {"u=w,g=wx,o=rwx", "540",},
-        {"u=w,g=wx,o=rw", "541",},
-        {"u=w,g=wx,o=rx", "542",},
-        {"u=w,g=wx,o=r", "543",},
-        {"u=w,g=wx,o=wx", "544",},
-        {"u=w,g=wx,o=w", "545",},
-        {"u=w,g=wx,o=x", "546",},
-        {"u=w,g=wx,o=", "547",},
-        {"u=w,g=w,o=rwx", "550",},
-        {"u=w,g=w,o=rw", "551",},
-        {"u=w,g=w,o=rx", "552",},
-        {"u=w,g=w,o=r", "553",},
-        {"u=w,g=w,o=wx", "554",},
-        {"u=w,g=w,o=w", "555",},
-        {"u=w,g=w,o=x", "556",},
-        {"u=w,g=w,o=", "557",},
-        {"u=w,g=x,o=rwx", "560",},
-        {"u=w,g=x,o=rw", "561",},
-        {"u=w,g=x,o=rx", "562",},
-        {"u=w,g=x,o=r", "563",},
-        {"u=w,g=x,o=wx", "564",},
-        {"u=w,g=x,o=w", "565",},
-        {"u=w,g=x,o=x", "566",},
-        {"u=w,g=x,o=", "567",},
-        {"u=w,g=,o=rwx", "570",},
-        {"u=w,g=,o=rw", "571",},
-        {"u=w,g=,o=rx", "572",},
-        {"u=w,g=,o=r", "573",},
-        {"u=w,g=,o=wx", "574",},
-        {"u=w,g=,o=w", "575",},
-        {"u=w,g=,o=x", "576",},
-        {"u=w,g=,o=", "577",},
-        {"u=x,g=rwx,o=rwx", "600",},
-        {"u=x,g=rwx,o=rw", "601",},
-        {"u=x,g=rwx,o=rx", "602",},
-        {"u=x,g=rwx,o=r", "603",},
-        {"u=x,g=rwx,o=wx", "604",},
-        {"u=x,g=rwx,o=w", "605",},
-        {"u=x,g=rwx,o=x", "606",},
-        {"u=x,g=rwx,o=", "607",},
-        {"u=x,g=rw,o=rwx", "610",},
-        {"u=x,g=rw,o=rw", "611",},
-        {"u=x,g=rw,o=rx", "612",},
-        {"u=x,g=rw,o=r", "613",},
-        {"u=x,g=rw,o=wx", "614",},
-        {"u=x,g=rw,o=w", "615",},
-        {"u=x,g=rw,o=x", "616",},
-        {"u=x,g=rw,o=", "617",},
-        {"u=x,g=rx,o=rwx", "620",},
-        {"u=x,g=rx,o=rw", "621",},
-        {"u=x,g=rx,o=rx", "622",},
-        {"u=x,g=rx,o=r", "623",},
-        {"u=x,g=rx,o=wx", "624",},
-        {"u=x,g=rx,o=w", "625",},
-        {"u=x,g=rx,o=x", "626",},
-        {"u=x,g=rx,o=", "627",},
-        {"u=x,g=r,o=rwx", "630",},
-        {"u=x,g=r,o=rw", "631",},
-        {"u=x,g=r,o=rx", "632",},
-        {"u=x,g=r,o=r", "633",},
-        {"u=x,g=r,o=wx", "634",},
-        {"u=x,g=r,o=w", "635",},
-        {"u=x,g=r,o=x", "636",},
-        {"u=x,g=r,o=", "637",},
-        {"u=x,g=wx,o=rwx", "640",},
-        {"u=x,g=wx,o=rw", "641",},
-        {"u=x,g=wx,o=rx", "642",},
-        {"u=x,g=wx,o=r", "643",},
-        {"u=x,g=wx,o=wx", "644",},
-        {"u=x,g=wx,o=w", "645",},
-        {"u=x,g=wx,o=x", "646",},
-        {"u=x,g=wx,o=", "647",},
-        {"u=x,g=w,o=rwx", "650",},
-        {"u=x,g=w,o=rw", "651",},
-        {"u=x,g=w,o=rx", "652",},
-        {"u=x,g=w,o=r", "653",},
-        {"u=x,g=w,o=wx", "654",},
-        {"u=x,g=w,o=w", "655",},
-        {"u=x,g=w,o=x", "656",},
-        {"u=x,g=w,o=", "657",},
-        {"u=x,g=x,o=rwx", "660",},
-        {"u=x,g=x,o=rw", "661",},
-        {"u=x,g=x,o=rx", "662",},
-        {"u=x,g=x,o=r", "663",},
-        {"u=x,g=x,o=wx", "664",},
-        {"u=x,g=x,o=w", "665",},
-        {"u=x,g=x,o=x", "666",},
-        {"u=x,g=x,o=", "667",},
-        {"u=x,g=,o=rwx", "670",},
-        {"u=x,g=,o=rw", "671",},
-        {"u=x,g=,o=rx", "672",},
-        {"u=x,g=,o=r", "673",},
-        {"u=x,g=,o=wx", "674",},
-        {"u=x,g=,o=w", "675",},
-        {"u=x,g=,o=x", "676",},
-        {"u=x,g=,o=", "677",},
-        {"u=,g=rwx,o=rwx", "700",},
-        {"u=,g=rwx,o=rw", "701",},
-        {"u=,g=rwx,o=rx", "702",},
-        {"u=,g=rwx,o=r", "703",},
-        {"u=,g=rwx,o=wx", "704",},
-        {"u=,g=rwx,o=w", "705",},
-        {"u=,g=rwx,o=x", "706",},
-        {"u=,g=rwx,o=", "707",},
-        {"u=,g=rw,o=rwx", "710",},
-        {"u=,g=rw,o=rw", "711",},
-        {"u=,g=rw,o=rx", "712",},
-        {"u=,g=rw,o=r", "713",},
-        {"u=,g=rw,o=wx", "714",},
-        {"u=,g=rw,o=w", "715",},
-        {"u=,g=rw,o=x", "716",},
-        {"u=,g=rw,o=", "717",},
-        {"u=,g=rx,o=rwx", "720",},
-        {"u=,g=rx,o=rw", "721",},
-        {"u=,g=rx,o=rx", "722",},
-        {"u=,g=rx,o=r", "723",},
-        {"u=,g=rx,o=wx", "724",},
-        {"u=,g=rx,o=w", "725",},
-        {"u=,g=rx,o=x", "726",},
-        {"u=,g=rx,o=", "727",},
-        {"u=,g=r,o=rwx", "730",},
-        {"u=,g=r,o=rw", "731",},
-        {"u=,g=r,o=rx", "732",},
-        {"u=,g=r,o=r", "733",},
-        {"u=,g=r,o=wx", "734",},
-        {"u=,g=r,o=w", "735",},
-        {"u=,g=r,o=x", "736",},
-        {"u=,g=r,o=", "737",},
-        {"u=,g=wx,o=rwx", "740",},
-        {"u=,g=wx,o=rw", "741",},
-        {"u=,g=wx,o=rx", "742",},
-        {"u=,g=wx,o=r", "743",},
-        {"u=,g=wx,o=wx", "744",},
-        {"u=,g=wx,o=w", "745",},
-        {"u=,g=wx,o=x", "746",},
-        {"u=,g=wx,o=", "747",},
-        {"u=,g=w,o=rwx", "750",},
-        {"u=,g=w,o=rw", "751",},
-        {"u=,g=w,o=rx", "752",},
-        {"u=,g=w,o=r", "753",},
-        {"u=,g=w,o=wx", "754",},
-        {"u=,g=w,o=w", "755",},
-        {"u=,g=w,o=x", "756",},
-        {"u=,g=w,o=", "757",},
-        {"u=,g=x,o=rwx", "760",},
-        {"u=,g=x,o=rw", "761",},
-        {"u=,g=x,o=rx", "762",},
-        {"u=,g=x,o=r", "763",},
-        {"u=,g=x,o=wx", "764",},
-        {"u=,g=x,o=w", "765",},
-        {"u=,g=x,o=x", "766",},
-        {"u=,g=x,o=", "767",},
-        {"u=,g=,o=rwx", "770",},
-        {"u=,g=,o=rw", "771",},
-        {"u=,g=,o=rx", "772",},
-        {"u=,g=,o=r", "773",},
-        {"u=,g=,o=wx", "774",},
-        {"u=,g=,o=w", "775",},
-        {"u=,g=,o=x", "776",},
-        {"u=,g=,o=", "777"}
-    };
-    
-    for(int i = 0; i < symbolic.length; i += 2) {
-      conf.set(FsPermission.UMASK_LABEL, symbolic[i][0]);
-      short val = Short.valueOf(symbolic[i][1], 8);
+    for (int i = 0; i < SYMBOLIC.length; ++i) {
+      conf.set(FsPermission.UMASK_LABEL, SYMBOLIC[i][0]);
+      short val = Short.valueOf(SYMBOLIC[i][1], 8);
       assertEquals(val, FsPermission.getUMask(conf).toShort());
     }
+    conf.set(FsPermission.UMASK_LABEL, "a+rw");
+    assertEquals(0111, FsPermission.getUMask(conf).toShort());
   }
 
   public void testBadUmasks() {
@@ -695,7 +196,7 @@ public class TestFsPermission extends TestCase {
            msg.contains(umask) &&
            msg.contains("octal or symbolic");
   }
-  
+
   // Ensure that when the deprecated decimal umask key is used, it is correctly
   // parsed as such and converted correctly to an FsPermission value
   public void testDeprecatedUmask() {
@@ -705,4 +206,522 @@ public class TestFsPermission extends TestCase {
 
     assertEquals(0456, umask.toShort());
   }
+
+  // Symbolic umask list is generated in linux shell using by the command:
+  // umask 0; umask <octal number>; umask -S
+  static final String[][] SYMBOLIC = new String[][] {
+      {"u=rwx,g=rwx,o=rwx", "0"},
+      {"u=rwx,g=rwx,o=rw", "1"},
+      {"u=rwx,g=rwx,o=rx", "2"},
+      {"u=rwx,g=rwx,o=r", "3"},
+      {"u=rwx,g=rwx,o=wx", "4"},
+      {"u=rwx,g=rwx,o=w", "5"},
+      {"u=rwx,g=rwx,o=x", "6"},
+      {"u=rwx,g=rwx,o=", "7"},
+      {"u=rwx,g=rw,o=rwx", "10"},
+      {"u=rwx,g=rw,o=rw", "11"},
+      {"u=rwx,g=rw,o=rx", "12"},
+      {"u=rwx,g=rw,o=r", "13"},
+      {"u=rwx,g=rw,o=wx", "14"},
+      {"u=rwx,g=rw,o=w", "15"},
+      {"u=rwx,g=rw,o=x", "16"},
+      {"u=rwx,g=rw,o=", "17"},
+      {"u=rwx,g=rx,o=rwx", "20"},
+      {"u=rwx,g=rx,o=rw", "21"},
+      {"u=rwx,g=rx,o=rx", "22"},
+      {"u=rwx,g=rx,o=r", "23"},
+      {"u=rwx,g=rx,o=wx", "24"},
+      {"u=rwx,g=rx,o=w", "25"},
+      {"u=rwx,g=rx,o=x", "26"},
+      {"u=rwx,g=rx,o=", "27"},
+      {"u=rwx,g=r,o=rwx", "30"},
+      {"u=rwx,g=r,o=rw", "31"},
+      {"u=rwx,g=r,o=rx", "32"},
+      {"u=rwx,g=r,o=r", "33"},
+      {"u=rwx,g=r,o=wx", "34"},
+      {"u=rwx,g=r,o=w", "35"},
+      {"u=rwx,g=r,o=x", "36"},
+      {"u=rwx,g=r,o=", "37"},
+      {"u=rwx,g=wx,o=rwx", "40"},
+      {"u=rwx,g=wx,o=rw", "41"},
+      {"u=rwx,g=wx,o=rx", "42"},
+      {"u=rwx,g=wx,o=r", "43"},
+      {"u=rwx,g=wx,o=wx", "44"},
+      {"u=rwx,g=wx,o=w", "45"},
+      {"u=rwx,g=wx,o=x", "46"},
+      {"u=rwx,g=wx,o=", "47"},
+      {"u=rwx,g=w,o=rwx", "50"},
+      {"u=rwx,g=w,o=rw", "51"},
+      {"u=rwx,g=w,o=rx", "52"},
+      {"u=rwx,g=w,o=r", "53"},
+      {"u=rwx,g=w,o=wx", "54"},
+      {"u=rwx,g=w,o=w", "55"},
+      {"u=rwx,g=w,o=x", "56"},
+      {"u=rwx,g=w,o=", "57"},
+      {"u=rwx,g=x,o=rwx", "60"},
+      {"u=rwx,g=x,o=rw", "61"},
+      {"u=rwx,g=x,o=rx", "62"},
+      {"u=rwx,g=x,o=r", "63"},
+      {"u=rwx,g=x,o=wx", "64"},
+      {"u=rwx,g=x,o=w", "65"},
+      {"u=rwx,g=x,o=x", "66"},
+      {"u=rwx,g=x,o=", "67"},
+      {"u=rwx,g=,o=rwx", "70"},
+      {"u=rwx,g=,o=rw", "71"},
+      {"u=rwx,g=,o=rx", "72"},
+      {"u=rwx,g=,o=r", "73"},
+      {"u=rwx,g=,o=wx", "74"},
+      {"u=rwx,g=,o=w", "75"},
+      {"u=rwx,g=,o=x", "76"},
+      {"u=rwx,g=,o=", "77"},
+      {"u=rw,g=rwx,o=rwx", "100"},
+      {"u=rw,g=rwx,o=rw", "101"},
+      {"u=rw,g=rwx,o=rx", "102"},
+      {"u=rw,g=rwx,o=r", "103"},
+      {"u=rw,g=rwx,o=wx", "104"},
+      {"u=rw,g=rwx,o=w", "105"},
+      {"u=rw,g=rwx,o=x", "106"},
+      {"u=rw,g=rwx,o=", "107"},
+      {"u=rw,g=rw,o=rwx", "110"},
+      {"u=rw,g=rw,o=rw", "111"},
+      {"u=rw,g=rw,o=rx", "112"},
+      {"u=rw,g=rw,o=r", "113"},
+      {"u=rw,g=rw,o=wx", "114"},
+      {"u=rw,g=rw,o=w", "115"},
+      {"u=rw,g=rw,o=x", "116"},
+      {"u=rw,g=rw,o=", "117"},
+      {"u=rw,g=rx,o=rwx", "120"},
+      {"u=rw,g=rx,o=rw", "121"},
+      {"u=rw,g=rx,o=rx", "122"},
+      {"u=rw,g=rx,o=r", "123"},
+      {"u=rw,g=rx,o=wx", "124"},
+      {"u=rw,g=rx,o=w", "125"},
+      {"u=rw,g=rx,o=x", "126"},
+      {"u=rw,g=rx,o=", "127"},
+      {"u=rw,g=r,o=rwx", "130"},
+      {"u=rw,g=r,o=rw", "131"},
+      {"u=rw,g=r,o=rx", "132"},
+      {"u=rw,g=r,o=r", "133"},
+      {"u=rw,g=r,o=wx", "134"},
+      {"u=rw,g=r,o=w", "135"},
+      {"u=rw,g=r,o=x", "136"},
+      {"u=rw,g=r,o=", "137"},
+      {"u=rw,g=wx,o=rwx", "140"},
+      {"u=rw,g=wx,o=rw", "141"},
+      {"u=rw,g=wx,o=rx", "142"},
+      {"u=rw,g=wx,o=r", "143"},
+      {"u=rw,g=wx,o=wx", "144"},
+      {"u=rw,g=wx,o=w", "145"},
+      {"u=rw,g=wx,o=x", "146"},
+      {"u=rw,g=wx,o=", "147"},
+      {"u=rw,g=w,o=rwx", "150"},
+      {"u=rw,g=w,o=rw", "151"},
+      {"u=rw,g=w,o=rx", "152"},
+      {"u=rw,g=w,o=r", "153"},
+      {"u=rw,g=w,o=wx", "154"},
+      {"u=rw,g=w,o=w", "155"},
+      {"u=rw,g=w,o=x", "156"},
+      {"u=rw,g=w,o=", "157"},
+      {"u=rw,g=x,o=rwx", "160"},
+      {"u=rw,g=x,o=rw", "161"},
+      {"u=rw,g=x,o=rx", "162"},
+      {"u=rw,g=x,o=r", "163"},
+      {"u=rw,g=x,o=wx", "164"},
+      {"u=rw,g=x,o=w", "165"},
+      {"u=rw,g=x,o=x", "166"},
+      {"u=rw,g=x,o=", "167"},
+      {"u=rw,g=,o=rwx", "170"},
+      {"u=rw,g=,o=rw", "171"},
+      {"u=rw,g=,o=rx", "172"},
+      {"u=rw,g=,o=r", "173"},
+      {"u=rw,g=,o=wx", "174"},
+      {"u=rw,g=,o=w", "175"},
+      {"u=rw,g=,o=x", "176"},
+      {"u=rw,g=,o=", "177"},
+      {"u=rx,g=rwx,o=rwx", "200"},
+      {"u=rx,g=rwx,o=rw", "201"},
+      {"u=rx,g=rwx,o=rx", "202"},
+      {"u=rx,g=rwx,o=r", "203"},
+      {"u=rx,g=rwx,o=wx", "204"},
+      {"u=rx,g=rwx,o=w", "205"},
+      {"u=rx,g=rwx,o=x", "206"},
+      {"u=rx,g=rwx,o=", "207"},
+      {"u=rx,g=rw,o=rwx", "210"},
+      {"u=rx,g=rw,o=rw", "211"},
+      {"u=rx,g=rw,o=rx", "212"},
+      {"u=rx,g=rw,o=r", "213"},
+      {"u=rx,g=rw,o=wx", "214"},
+      {"u=rx,g=rw,o=w", "215"},
+      {"u=rx,g=rw,o=x", "216"},
+      {"u=rx,g=rw,o=", "217"},
+      {"u=rx,g=rx,o=rwx", "220"},
+      {"u=rx,g=rx,o=rw", "221"},
+      {"u=rx,g=rx,o=rx", "222"},
+      {"u=rx,g=rx,o=r", "223"},
+      {"u=rx,g=rx,o=wx", "224"},
+      {"u=rx,g=rx,o=w", "225"},
+      {"u=rx,g=rx,o=x", "226"},
+      {"u=rx,g=rx,o=", "227"},
+      {"u=rx,g=r,o=rwx", "230"},
+      {"u=rx,g=r,o=rw", "231"},
+      {"u=rx,g=r,o=rx", "232"},
+      {"u=rx,g=r,o=r", "233"},
+      {"u=rx,g=r,o=wx", "234"},
+      {"u=rx,g=r,o=w", "235"},
+      {"u=rx,g=r,o=x", "236"},
+      {"u=rx,g=r,o=", "237"},
+      {"u=rx,g=wx,o=rwx", "240"},
+      {"u=rx,g=wx,o=rw", "241"},
+      {"u=rx,g=wx,o=rx", "242"},
+      {"u=rx,g=wx,o=r", "243"},
+      {"u=rx,g=wx,o=wx", "244"},
+      {"u=rx,g=wx,o=w", "245"},
+      {"u=rx,g=wx,o=x", "246"},
+      {"u=rx,g=wx,o=", "247"},
+      {"u=rx,g=w,o=rwx", "250"},
+      {"u=rx,g=w,o=rw", "251"},
+      {"u=rx,g=w,o=rx", "252"},
+      {"u=rx,g=w,o=r", "253"},
+      {"u=rx,g=w,o=wx", "254"},
+      {"u=rx,g=w,o=w", "255"},
+      {"u=rx,g=w,o=x", "256"},
+      {"u=rx,g=w,o=", "257"},
+      {"u=rx,g=x,o=rwx", "260"},
+      {"u=rx,g=x,o=rw", "261"},
+      {"u=rx,g=x,o=rx", "262"},
+      {"u=rx,g=x,o=r", "263"},
+      {"u=rx,g=x,o=wx", "264"},
+      {"u=rx,g=x,o=w", "265"},
+      {"u=rx,g=x,o=x", "266"},
+      {"u=rx,g=x,o=", "267"},
+      {"u=rx,g=,o=rwx", "270"},
+      {"u=rx,g=,o=rw", "271"},
+      {"u=rx,g=,o=rx", "272"},
+      {"u=rx,g=,o=r", "273"},
+      {"u=rx,g=,o=wx", "274"},
+      {"u=rx,g=,o=w", "275"},
+      {"u=rx,g=,o=x", "276"},
+      {"u=rx,g=,o=", "277"},
+      {"u=r,g=rwx,o=rwx", "300"},
+      {"u=r,g=rwx,o=rw", "301"},
+      {"u=r,g=rwx,o=rx", "302"},
+      {"u=r,g=rwx,o=r", "303"},
+      {"u=r,g=rwx,o=wx", "304"},
+      {"u=r,g=rwx,o=w", "305"},
+      {"u=r,g=rwx,o=x", "306"},
+      {"u=r,g=rwx,o=", "307"},
+      {"u=r,g=rw,o=rwx", "310"},
+      {"u=r,g=rw,o=rw", "311"},
+      {"u=r,g=rw,o=rx", "312"},
+      {"u=r,g=rw,o=r", "313"},
+      {"u=r,g=rw,o=wx", "314"},
+      {"u=r,g=rw,o=w", "315"},
+      {"u=r,g=rw,o=x", "316"},
+      {"u=r,g=rw,o=", "317"},
+      {"u=r,g=rx,o=rwx", "320"},
+      {"u=r,g=rx,o=rw", "321"},
+      {"u=r,g=rx,o=rx", "322"},
+      {"u=r,g=rx,o=r", "323"},
+      {"u=r,g=rx,o=wx", "324"},
+      {"u=r,g=rx,o=w", "325"},
+      {"u=r,g=rx,o=x", "326"},
+      {"u=r,g=rx,o=", "327"},
+      {"u=r,g=r,o=rwx", "330"},
+      {"u=r,g=r,o=rw", "331"},
+      {"u=r,g=r,o=rx", "332"},
+      {"u=r,g=r,o=r", "333"},
+      {"u=r,g=r,o=wx", "334"},
+      {"u=r,g=r,o=w", "335"},
+      {"u=r,g=r,o=x", "336"},
+      {"u=r,g=r,o=", "337"},
+      {"u=r,g=wx,o=rwx", "340"},
+      {"u=r,g=wx,o=rw", "341"},
+      {"u=r,g=wx,o=rx", "342"},
+      {"u=r,g=wx,o=r", "343"},
+      {"u=r,g=wx,o=wx", "344"},
+      {"u=r,g=wx,o=w", "345"},
+      {"u=r,g=wx,o=x", "346"},
+      {"u=r,g=wx,o=", "347"},
+      {"u=r,g=w,o=rwx", "350"},
+      {"u=r,g=w,o=rw", "351"},
+      {"u=r,g=w,o=rx", "352"},
+      {"u=r,g=w,o=r", "353"},
+      {"u=r,g=w,o=wx", "354"},
+      {"u=r,g=w,o=w", "355"},
+      {"u=r,g=w,o=x", "356"},
+      {"u=r,g=w,o=", "357"},
+      {"u=r,g=x,o=rwx", "360"},
+      {"u=r,g=x,o=rw", "361"},
+      {"u=r,g=x,o=rx", "362"},
+      {"u=r,g=x,o=r", "363"},
+      {"u=r,g=x,o=wx", "364"},
+      {"u=r,g=x,o=w", "365"},
+      {"u=r,g=x,o=x", "366"},
+      {"u=r,g=x,o=", "367"},
+      {"u=r,g=,o=rwx", "370"},
+      {"u=r,g=,o=rw", "371"},
+      {"u=r,g=,o=rx", "372"},
+      {"u=r,g=,o=r", "373"},
+      {"u=r,g=,o=wx", "374"},
+      {"u=r,g=,o=w", "375"},
+      {"u=r,g=,o=x", "376"},
+      {"u=r,g=,o=", "377"},
+      {"u=wx,g=rwx,o=rwx", "400"},
+      {"u=wx,g=rwx,o=rw", "401"},
+      {"u=wx,g=rwx,o=rx", "402"},
+      {"u=wx,g=rwx,o=r", "403"},
+      {"u=wx,g=rwx,o=wx", "404"},
+      {"u=wx,g=rwx,o=w", "405"},
+      {"u=wx,g=rwx,o=x", "406"},
+      {"u=wx,g=rwx,o=", "407"},
+      {"u=wx,g=rw,o=rwx", "410"},
+      {"u=wx,g=rw,o=rw", "411"},
+      {"u=wx,g=rw,o=rx", "412"},
+      {"u=wx,g=rw,o=r", "413"},
+      {"u=wx,g=rw,o=wx", "414"},
+      {"u=wx,g=rw,o=w", "415"},
+      {"u=wx,g=rw,o=x", "416"},
+      {"u=wx,g=rw,o=", "417"},
+      {"u=wx,g=rx,o=rwx", "420"},
+      {"u=wx,g=rx,o=rw", "421"},
+      {"u=wx,g=rx,o=rx", "422"},
+      {"u=wx,g=rx,o=r", "423"},
+      {"u=wx,g=rx,o=wx", "424"},
+      {"u=wx,g=rx,o=w", "425"},
+      {"u=wx,g=rx,o=x", "426"},
+      {"u=wx,g=rx,o=", "427"},
+      {"u=wx,g=r,o=rwx", "430"},
+      {"u=wx,g=r,o=rw", "431"},
+      {"u=wx,g=r,o=rx", "432"},
+      {"u=wx,g=r,o=r", "433"},
+      {"u=wx,g=r,o=wx", "434"},
+      {"u=wx,g=r,o=w", "435"},
+      {"u=wx,g=r,o=x", "436"},
+      {"u=wx,g=r,o=", "437"},
+      {"u=wx,g=wx,o=rwx", "440"},
+      {"u=wx,g=wx,o=rw", "441"},
+      {"u=wx,g=wx,o=rx", "442"},
+      {"u=wx,g=wx,o=r", "443"},
+      {"u=wx,g=wx,o=wx", "444"},
+      {"u=wx,g=wx,o=w", "445"},
+      {"u=wx,g=wx,o=x", "446"},
+      {"u=wx,g=wx,o=", "447"},
+      {"u=wx,g=w,o=rwx", "450"},
+      {"u=wx,g=w,o=rw", "451"},
+      {"u=wx,g=w,o=rx", "452"},
+      {"u=wx,g=w,o=r", "453"},
+      {"u=wx,g=w,o=wx", "454"},
+      {"u=wx,g=w,o=w", "455"},
+      {"u=wx,g=w,o=x", "456"},
+      {"u=wx,g=w,o=", "457"},
+      {"u=wx,g=x,o=rwx", "460"},
+      {"u=wx,g=x,o=rw", "461"},
+      {"u=wx,g=x,o=rx", "462"},
+      {"u=wx,g=x,o=r", "463"},
+      {"u=wx,g=x,o=wx", "464"},
+      {"u=wx,g=x,o=w", "465"},
+      {"u=wx,g=x,o=x", "466"},
+      {"u=wx,g=x,o=", "467"},
+      {"u=wx,g=,o=rwx", "470"},
+      {"u=wx,g=,o=rw", "471"},
+      {"u=wx,g=,o=rx", "472"},
+      {"u=wx,g=,o=r", "473"},
+      {"u=wx,g=,o=wx", "474"},
+      {"u=wx,g=,o=w", "475"},
+      {"u=wx,g=,o=x", "476"},
+      {"u=wx,g=,o=", "477"},
+      {"u=w,g=rwx,o=rwx", "500"},
+      {"u=w,g=rwx,o=rw", "501"},
+      {"u=w,g=rwx,o=rx", "502"},
+      {"u=w,g=rwx,o=r", "503"},
+      {"u=w,g=rwx,o=wx", "504"},
+      {"u=w,g=rwx,o=w", "505"},
+      {"u=w,g=rwx,o=x", "506"},
+      {"u=w,g=rwx,o=", "507"},
+      {"u=w,g=rw,o=rwx", "510"},
+      {"u=w,g=rw,o=rw", "511"},
+      {"u=w,g=rw,o=rx", "512"},
+      {"u=w,g=rw,o=r", "513"},
+      {"u=w,g=rw,o=wx", "514"},
+      {"u=w,g=rw,o=w", "515"},
+      {"u=w,g=rw,o=x", "516"},
+      {"u=w,g=rw,o=", "517"},
+      {"u=w,g=rx,o=rwx", "520"},
+      {"u=w,g=rx,o=rw", "521"},
+      {"u=w,g=rx,o=rx", "522"},
+      {"u=w,g=rx,o=r", "523"},
+      {"u=w,g=rx,o=wx", "524"},
+      {"u=w,g=rx,o=w", "525"},
+      {"u=w,g=rx,o=x", "526"},
+      {"u=w,g=rx,o=", "527"},
+      {"u=w,g=r,o=rwx", "530"},
+      {"u=w,g=r,o=rw", "531"},
+      {"u=w,g=r,o=rx", "532"},
+      {"u=w,g=r,o=r", "533"},
+      {"u=w,g=r,o=wx", "534"},
+      {"u=w,g=r,o=w", "535"},
+      {"u=w,g=r,o=x", "536"},
+      {"u=w,g=r,o=", "537"},
+      {"u=w,g=wx,o=rwx", "540"},
+      {"u=w,g=wx,o=rw", "541"},
+      {"u=w,g=wx,o=rx", "542"},
+      {"u=w,g=wx,o=r", "543"},
+      {"u=w,g=wx,o=wx", "544"},
+      {"u=w,g=wx,o=w", "545"},
+      {"u=w,g=wx,o=x", "546"},
+      {"u=w,g=wx,o=", "547"},
+      {"u=w,g=w,o=rwx", "550"},
+      {"u=w,g=w,o=rw", "551"},
+      {"u=w,g=w,o=rx", "552"},
+      {"u=w,g=w,o=r", "553"},
+      {"u=w,g=w,o=wx", "554"},
+      {"u=w,g=w,o=w", "555"},
+      {"u=w,g=w,o=x", "556"},
+      {"u=w,g=w,o=", "557"},
+      {"u=w,g=x,o=rwx", "560"},
+      {"u=w,g=x,o=rw", "561"},
+      {"u=w,g=x,o=rx", "562"},
+      {"u=w,g=x,o=r", "563"},
+      {"u=w,g=x,o=wx", "564"},
+      {"u=w,g=x,o=w", "565"},
+      {"u=w,g=x,o=x", "566"},
+      {"u=w,g=x,o=", "567"},
+      {"u=w,g=,o=rwx", "570"},
+      {"u=w,g=,o=rw", "571"},
+      {"u=w,g=,o=rx", "572"},
+      {"u=w,g=,o=r", "573"},
+      {"u=w,g=,o=wx", "574"},
+      {"u=w,g=,o=w", "575"},
+      {"u=w,g=,o=x", "576"},
+      {"u=w,g=,o=", "577"},
+      {"u=x,g=rwx,o=rwx", "600"},
+      {"u=x,g=rwx,o=rw", "601"},
+      {"u=x,g=rwx,o=rx", "602"},
+      {"u=x,g=rwx,o=r", "603"},
+      {"u=x,g=rwx,o=wx", "604"},
+      {"u=x,g=rwx,o=w", "605"},
+      {"u=x,g=rwx,o=x", "606"},
+      {"u=x,g=rwx,o=", "607"},
+      {"u=x,g=rw,o=rwx", "610"},
+      {"u=x,g=rw,o=rw", "611"},
+      {"u=x,g=rw,o=rx", "612"},
+      {"u=x,g=rw,o=r", "613"},
+      {"u=x,g=rw,o=wx", "614"},
+      {"u=x,g=rw,o=w", "615"},
+      {"u=x,g=rw,o=x", "616"},
+      {"u=x,g=rw,o=", "617"},
+      {"u=x,g=rx,o=rwx", "620"},
+      {"u=x,g=rx,o=rw", "621"},
+      {"u=x,g=rx,o=rx", "622"},
+      {"u=x,g=rx,o=r", "623"},
+      {"u=x,g=rx,o=wx", "624"},
+      {"u=x,g=rx,o=w", "625"},
+      {"u=x,g=rx,o=x", "626"},
+      {"u=x,g=rx,o=", "627"},
+      {"u=x,g=r,o=rwx", "630"},
+      {"u=x,g=r,o=rw", "631"},
+      {"u=x,g=r,o=rx", "632"},
+      {"u=x,g=r,o=r", "633"},
+      {"u=x,g=r,o=wx", "634"},
+      {"u=x,g=r,o=w", "635"},
+      {"u=x,g=r,o=x", "636"},
+      {"u=x,g=r,o=", "637"},
+      {"u=x,g=wx,o=rwx", "640"},
+      {"u=x,g=wx,o=rw", "641"},
+      {"u=x,g=wx,o=rx", "642"},
+      {"u=x,g=wx,o=r", "643"},
+      {"u=x,g=wx,o=wx", "644"},
+      {"u=x,g=wx,o=w", "645"},
+      {"u=x,g=wx,o=x", "646"},
+      {"u=x,g=wx,o=", "647"},
+      {"u=x,g=w,o=rwx", "650"},
+      {"u=x,g=w,o=rw", "651"},
+      {"u=x,g=w,o=rx", "652"},
+      {"u=x,g=w,o=r", "653"},
+      {"u=x,g=w,o=wx", "654"},
+      {"u=x,g=w,o=w", "655"},
+      {"u=x,g=w,o=x", "656"},
+      {"u=x,g=w,o=", "657"},
+      {"u=x,g=x,o=rwx", "660"},
+      {"u=x,g=x,o=rw", "661"},
+      {"u=x,g=x,o=rx", "662"},
+      {"u=x,g=x,o=r", "663"},
+      {"u=x,g=x,o=wx", "664"},
+      {"u=x,g=x,o=w", "665"},
+      {"u=x,g=x,o=x", "666"},
+      {"u=x,g=x,o=", "667"},
+      {"u=x,g=,o=rwx", "670"},
+      {"u=x,g=,o=rw", "671"},
+      {"u=x,g=,o=rx", "672"},
+      {"u=x,g=,o=r", "673"},
+      {"u=x,g=,o=wx", "674"},
+      {"u=x,g=,o=w", "675"},
+      {"u=x,g=,o=x", "676"},
+      {"u=x,g=,o=", "677"},
+      {"u=,g=rwx,o=rwx", "700"},
+      {"u=,g=rwx,o=rw", "701"},
+      {"u=,g=rwx,o=rx", "702"},
+      {"u=,g=rwx,o=r", "703"},
+      {"u=,g=rwx,o=wx", "704"},
+      {"u=,g=rwx,o=w", "705"},
+      {"u=,g=rwx,o=x", "706"},
+      {"u=,g=rwx,o=", "707"},
+      {"u=,g=rw,o=rwx", "710"},
+      {"u=,g=rw,o=rw", "711"},
+      {"u=,g=rw,o=rx", "712"},
+      {"u=,g=rw,o=r", "713"},
+      {"u=,g=rw,o=wx", "714"},
+      {"u=,g=rw,o=w", "715"},
+      {"u=,g=rw,o=x", "716"},
+      {"u=,g=rw,o=", "717"},
+      {"u=,g=rx,o=rwx", "720"},
+      {"u=,g=rx,o=rw", "721"},
+      {"u=,g=rx,o=rx", "722"},
+      {"u=,g=rx,o=r", "723"},
+      {"u=,g=rx,o=wx", "724"},
+      {"u=,g=rx,o=w", "725"},
+      {"u=,g=rx,o=x", "726"},
+      {"u=,g=rx,o=", "727"},
+      {"u=,g=r,o=rwx", "730"},
+      {"u=,g=r,o=rw", "731"},
+      {"u=,g=r,o=rx", "732"},
+      {"u=,g=r,o=r", "733"},
+      {"u=,g=r,o=wx", "734"},
+      {"u=,g=r,o=w", "735"},
+      {"u=,g=r,o=x", "736"},
+      {"u=,g=r,o=", "737"},
+      {"u=,g=wx,o=rwx", "740"},
+      {"u=,g=wx,o=rw", "741"},
+      {"u=,g=wx,o=rx", "742"},
+      {"u=,g=wx,o=r", "743"},
+      {"u=,g=wx,o=wx", "744"},
+      {"u=,g=wx,o=w", "745"},
+      {"u=,g=wx,o=x", "746"},
+      {"u=,g=wx,o=", "747"},
+      {"u=,g=w,o=rwx", "750"},
+      {"u=,g=w,o=rw", "751"},
+      {"u=,g=w,o=rx", "752"},
+      {"u=,g=w,o=r", "753"},
+      {"u=,g=w,o=wx", "754"},
+      {"u=,g=w,o=w", "755"},
+      {"u=,g=w,o=x", "756"},
+      {"u=,g=w,o=", "757"},
+      {"u=,g=x,o=rwx", "760"},
+      {"u=,g=x,o=rw", "761"},
+      {"u=,g=x,o=rx", "762"},
+      {"u=,g=x,o=r", "763"},
+      {"u=,g=x,o=wx", "764"},
+      {"u=,g=x,o=w", "765"},
+      {"u=,g=x,o=x", "766"},
+      {"u=,g=x,o=", "767"},
+      {"u=,g=,o=rwx", "770"},
+      {"u=,g=,o=rw", "771"},
+      {"u=,g=,o=rx", "772"},
+      {"u=,g=,o=r", "773"},
+      {"u=,g=,o=wx", "774"},
+      {"u=,g=,o=w", "775"},
+      {"u=,g=,o=x", "776"},
+      {"u=,g=,o=", "777"}
+  };
+
 }


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