HDFS-9844. Correct path creation in getTrashRoot to handle root dir. Change-Id: I5afe6c7176063892e3e632698c849bd9f4b92906
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/647a35e9 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/647a35e9 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/647a35e9 Branch: refs/heads/HDFS-7240 Commit: 647a35e996d33d8df898891760305222446b68f5 Parents: d284e18 Author: Zhe Zhang <z...@apache.org> Authored: Tue Feb 23 13:29:39 2016 -0800 Committer: Zhe Zhang <z...@apache.org> Committed: Tue Feb 23 13:29:39 2016 -0800 ---------------------------------------------------------------------- .../org/apache/hadoop/hdfs/DistributedFileSystem.java | 2 +- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 2 ++ .../org/apache/hadoop/hdfs/TestEncryptionZones.java | 14 ++++++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/647a35e9/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 69f3871..d6eb9e5 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(ez.getPath(), FileSystem.TRASH_PREFIX + dfs.ugi.getShortUserName())); } } catch (IOException e) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/647a35e9/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 526ddff..83eacc3 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -1954,6 +1954,8 @@ Release 2.8.0 - UNRELEASED HDFS-9084. Pagination, sorting and filtering of files/directories in the HDFS Web UI. (Ravi Prakash via ozawa) + HDFS-9844. Correct path creation in getTrashRoot to handle root dir. (zhz) + OPTIMIZATIONS HDFS-8026. Trace FSOutputSummer#writeChecksumChunks rather than http://git-wip-us.apache.org/repos/asf/hadoop/blob/647a35e9/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 42cb661..82a646f 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 @@ -1428,6 +1428,20 @@ public class TestEncryptionZones { verifyShellDeleteWithTrash(shell, topEZ); } + @Test(timeout = 120000) + public void testRootDirEZTrash() throws Exception { + final HdfsAdmin dfsAdmin = + new HdfsAdmin(FileSystem.getDefaultUri(conf), conf); + dfsAdmin.createEncryptionZone(new Path("/"), TEST_KEY); + final Path encFile = new Path("/encFile"); + final int len = 8192; + DFSTestUtil.createFile(fs, encFile, len, (short) 1, 0xFEED); + Configuration clientConf = new Configuration(conf); + clientConf.setLong(FS_TRASH_INTERVAL_KEY, 1); + FsShell shell = new FsShell(clientConf); + verifyShellDeleteWithTrash(shell, encFile); + } + private void verifyShellDeleteWithTrash(FsShell shell, Path path) throws Exception{ try {