Repository: hadoop Updated Branches: refs/heads/trunk de0cba700 -> 8196a07c3
HDFS-12344. LocatedFileStatus regression: no longer accepting null FSPermission. Contributed by Ewan Higgs Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/8196a07c Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/8196a07c Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/8196a07c Branch: refs/heads/trunk Commit: 8196a07c3211385ce85ae24f763b62696edc60b9 Parents: de0cba7 Author: Steve Loughran <[email protected]> Authored: Thu Aug 24 16:17:30 2017 +0100 Committer: Steve Loughran <[email protected]> Committed: Thu Aug 24 16:17:30 2017 +0100 ---------------------------------------------------------------------- .../org/apache/hadoop/fs/LocatedFileStatus.java | 6 ++- .../apache/hadoop/fs/TestLocatedFileStatus.java | 52 ++++++++++++++++++++ 2 files changed, 56 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/8196a07c/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/LocatedFileStatus.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/LocatedFileStatus.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/LocatedFileStatus.java index 885da07..dbb751d 100644 --- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/LocatedFileStatus.java +++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/LocatedFileStatus.java @@ -84,8 +84,10 @@ public class LocatedFileStatus extends FileStatus { Path symlink, Path path, BlockLocation[] locations) { this(length, isdir, block_replication, blocksize, modification_time, access_time, permission, owner, group, symlink, path, - permission.getAclBit(), permission.getEncryptedBit(), - permission.getErasureCodedBit(), locations); + permission == null ? false : permission.getAclBit(), + permission == null ? false : permission.getEncryptedBit(), + permission == null ? false : permission.getErasureCodedBit(), + locations); } /** http://git-wip-us.apache.org/repos/asf/hadoop/blob/8196a07c/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocatedFileStatus.java ---------------------------------------------------------------------- diff --git a/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocatedFileStatus.java b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocatedFileStatus.java new file mode 100644 index 0000000..4490f92 --- /dev/null +++ b/hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/fs/TestLocatedFileStatus.java @@ -0,0 +1,52 @@ +/** + * 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; + +import org.apache.hadoop.fs.permission.FsPermission; +import org.junit.Test; + +import java.io.IOException; + +import static org.mockito.Mockito.mock; + +/** + * This class tests the LocatedFileStatus class. + */ +public class TestLocatedFileStatus { + @Test + public void testDeprecatedConstruction() throws IOException { + BlockLocation[] locs = new BlockLocation[] {mock(BlockLocation.class)}; + final boolean isDir = false; + final int repl = 3; + final long blocksize = 64 * 1024 * 1024; + final long modificationTime = 0; + final long accessTime = 0; + + // We should be able to pass null for the permission. + LocatedFileStatus lfsNullPerm = new LocatedFileStatus(1, isDir, + repl, blocksize, modificationTime, accessTime, null, null, null, + null, new Path("/some-file.txt"), locs); + FsPermission permission = mock(FsPermission.class); + + // We should also be able to pass a permission or the permission. + LocatedFileStatus lfsNonNullPerm = new LocatedFileStatus(1, isDir, + repl, blocksize, modificationTime, accessTime, permission, null, + null, null, new Path("/some-file.txt"), locs); + } +} --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
