From d1058249fbfee93b417825b8ab74ba201d6c696c Mon Sep 17 00:00:00 2001 From: Jing Zhao Date: Thu, 13 Jun 2013 18:23:26 +0000 Subject: [PATCH] HDFS-4902. Merging changes r1492791 from trunk. git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1492800 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 3f0ee850bfb..24ab56fc6f6 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -860,6 +860,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 c945d5e5aa6..d901da21fe3 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 @@ -99,7 +99,6 @@ import org.apache.hadoop.fs.MD5MD5CRC32GzipFileChecksum; 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; @@ -2170,11 +2169,11 @@ public class DFSClient implements java.io.Closeable { * 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 201b3fe3352..7175f8ee2d7 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 @@ -1031,7 +1031,7 @@ public class DistributedFileSystem extends FileSystem { */ 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 class TestSnapshotDiffReport { 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")),