From 7e1744ccf9a9b5b035afbb182aad123a1d1d357f Mon Sep 17 00:00:00 2001 From: Jing Zhao Date: Thu, 13 Jun 2013 18:11:42 +0000 Subject: [PATCH] HDFS-4902. DFSClient#getSnapshotDiffReport should use string path rather than o.a.h.fs.Path. Contributed by Binglin Chang. git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1492791 13f79535-47bb-0310-9956-ffa450edef68 --- hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++ .../src/main/java/org/apache/hadoop/hdfs/DFSClient.java | 5 ++--- .../java/org/apache/hadoop/hdfs/DistributedFileSystem.java | 2 +- .../server/namenode/snapshot/TestSnapshotDiffReport.java | 7 ++++++- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index e48814525dc..d43eaf62c25 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -1075,6 +1075,9 @@ Release 2.1.0-beta - UNRELEASED HDFS-4819. Update Snapshot doc to clarify that nested snapshots are not allowed. (szetszwo) + HDFS-4902. DFSClient.getSnapshotDiffReport should use string path rather + than o.a.h.fs.Path. (Binglin Chang via jing9) + Release 2.0.5-alpha - 06/06/2013 INCOMPATIBLE CHANGES diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSClient.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSClient.java index 7d332388c57..d73a2304163 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSClient.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSClient.java @@ -97,7 +97,6 @@ import org.apache.hadoop.fs.Options; import org.apache.hadoop.fs.Options.ChecksumOpt; import org.apache.hadoop.fs.ParentNotDirectoryException; -import org.apache.hadoop.fs.Path; import org.apache.hadoop.fs.UnresolvedLinkException; import org.apache.hadoop.fs.VolumeId; import org.apache.hadoop.fs.permission.FsPermission; @@ -2143,11 +2142,11 @@ public void disallowSnapshot(String snapshotRoot) throws IOException { * current tree of a directory. * @see ClientProtocol#getSnapshotDiffReport(String, String, String) */ - public SnapshotDiffReport getSnapshotDiffReport(Path snapshotDir, + public SnapshotDiffReport getSnapshotDiffReport(String snapshotDir, String fromSnapshot, String toSnapshot) throws IOException { checkOpen(); try { - return namenode.getSnapshotDiffReport(snapshotDir.toString(), + return namenode.getSnapshotDiffReport(snapshotDir, fromSnapshot, toSnapshot); } catch(RemoteException re) { throw re.unwrapRemoteException(); diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java index 9da5566a91f..2a01d7fd3d9 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DistributedFileSystem.java @@ -987,7 +987,7 @@ public void deleteSnapshot(Path snapshotDir, String snapshotName) */ public SnapshotDiffReport getSnapshotDiffReport(Path snapshotDir, String fromSnapshot, String toSnapshot) throws IOException { - return dfs.getSnapshotDiffReport(snapshotDir, fromSnapshot, toSnapshot); + return dfs.getSnapshotDiffReport(getPathName(snapshotDir), fromSnapshot, toSnapshot); } /** diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestSnapshotDiffReport.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestSnapshotDiffReport.java index 986186f10a0..711fcd9ca98 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestSnapshotDiffReport.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/snapshot/TestSnapshotDiffReport.java @@ -210,7 +210,12 @@ public void testDiffReport() throws Exception { report = hdfs.getSnapshotDiffReport(subsubsub1, "s0", "s2"); System.out.println(report); assertEquals(0, report.getDiffList().size()); - + + // test path with scheme also works + report = hdfs.getSnapshotDiffReport(hdfs.makeQualified(subsubsub1), "s0", "s2"); + System.out.println(report); + assertEquals(0, report.getDiffList().size()); + verifyDiffReport(sub1, "s0", "s2", new DiffReportEntry(DiffType.MODIFY, DFSUtil.string2Bytes("")), new DiffReportEntry(DiffType.CREATE, DFSUtil.string2Bytes("file15")),