Repository: hadoop Updated Branches: refs/heads/trunk e76b13c41 -> 4abb2fa68
HDFS-9881. DistributedFileSystem#getTrashRoot returns incorrect path for encryption zones. Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/4abb2fa6 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/4abb2fa6 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/4abb2fa6 Branch: refs/heads/trunk Commit: 4abb2fa687a80d2b76f2751dd31513822601b235 Parents: e76b13c Author: Andrew Wang <[email protected]> Authored: Tue Mar 1 16:35:39 2016 -0800 Committer: Andrew Wang <[email protected]> Committed: Tue Mar 1 16:35:39 2016 -0800 ---------------------------------------------------------------------- .../java/org/apache/hadoop/hdfs/DistributedFileSystem.java | 2 +- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++ .../java/org/apache/hadoop/hdfs/TestEncryptionZones.java | 8 ++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/4abb2fa6/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java index d6eb9e5..275c63d 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java +++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java @@ -2355,7 +2355,7 @@ public class DistributedFileSystem extends FileSystem { EncryptionZone ez = dfs.getEZForPath(parentSrc); if ((ez != null)) { return this.makeQualified( - new Path(ez.getPath(), FileSystem.TRASH_PREFIX + + new Path(new Path(ez.getPath(), FileSystem.TRASH_PREFIX), dfs.ugi.getShortUserName())); } } catch (IOException e) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/4abb2fa6/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index 464891d..80bd4d57 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -2864,6 +2864,9 @@ Release 2.8.0 - UNRELEASED HDFS-9870. Remove unused imports from DFSUtil. (Brahma Reddy Battula via cnauroth) + HDFS-9881. DistributedFileSystem#getTrashRoot returns incorrect path for + encryption zones. (wang) + Release 2.7.3 - UNRELEASED INCOMPATIBLE CHANGES http://git-wip-us.apache.org/repos/asf/hadoop/blob/4abb2fa6/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZones.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZones.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZones.java index 82a646f..6c2ce6a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZones.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestEncryptionZones.java @@ -1445,6 +1445,14 @@ public class TestEncryptionZones { private void verifyShellDeleteWithTrash(FsShell shell, Path path) throws Exception{ try { + Path trashDir = shell.getCurrentTrashDir(path); + // Verify that trashDir has a path component named ".Trash" + Path checkTrash = trashDir; + while (!checkTrash.isRoot() && !checkTrash.getName().equals(".Trash")) { + checkTrash = checkTrash.getParent(); + } + assertEquals("No .Trash component found in trash dir " + trashDir, + ".Trash", checkTrash.getName()); final Path trashFile = new Path(shell.getCurrentTrashDir(path) + "/" + path); String[] argv = new String[]{"-rm", "-r", path.toString()};
