Browse Source

HDFS-3176. Use MD5MD5CRC32FileChecksum.readFields() in JsonUtil . Contributed by Kihwal Lee

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1@1309119 13f79535-47bb-0310-9956-ffa450edef68
Tsz-wo Sze 13 years ago
parent
commit
e3d8348b6e
2 changed files with 10 additions and 12 deletions
  1. 3 0
      CHANGES.txt
  2. 7 12
      src/hdfs/org/apache/hadoop/hdfs/web/JsonUtil.java

+ 3 - 0
CHANGES.txt

@@ -199,6 +199,9 @@ Release 1.1.0 - unreleased
     MAPREDUCE-4012. Hadoop Job setup error leaves no useful info to users 
     MAPREDUCE-4012. Hadoop Job setup error leaves no useful info to users 
     (when LinuxTaskController is used) (tgraves)
     (when LinuxTaskController is used) (tgraves)
 
 
+    HDFS-3176. Use MD5MD5CRC32FileChecksum.readFields() in JsonUtil .  (Kihwal
+    Lee via szetszwo)
+
 Release 1.0.3 - unreleased
 Release 1.0.3 - unreleased
 
 
   NEW FEATURES
   NEW FEATURES

+ 7 - 12
src/hdfs/org/apache/hadoop/hdfs/web/JsonUtil.java

@@ -444,18 +444,13 @@ public class JsonUtil {
     final byte[] bytes = StringUtils.hexStringToByte((String)m.get("bytes"));
     final byte[] bytes = StringUtils.hexStringToByte((String)m.get("bytes"));
 
 
     final DataInputStream in = new DataInputStream(new ByteArrayInputStream(bytes));
     final DataInputStream in = new DataInputStream(new ByteArrayInputStream(bytes));
-    final int bytesPerCRC = in.readInt();
-    final long crcPerBlock = in.readLong();
-    final MD5Hash md5 = MD5Hash.read(in);
-    final MD5MD5CRC32FileChecksum checksum = new MD5MD5CRC32FileChecksum(
-        bytesPerCRC, crcPerBlock, md5);
-
-    //check algorithm name
-    final String alg = "MD5-of-" + crcPerBlock + "MD5-of-" + bytesPerCRC + "CRC32";
-    if (!alg.equals(algorithm)) {
-      throw new IOException("Algorithm not matched: algorithm=" + algorithm
-          + ", crcPerBlock=" + crcPerBlock
-          + ", bytesPerCRC=" + bytesPerCRC);
+    final MD5MD5CRC32FileChecksum checksum = new MD5MD5CRC32FileChecksum();
+    checksum.readFields(in);
+ 
+     //check algorithm name
+    if (!checksum.getAlgorithmName().equals(algorithm)) {
+      throw new IOException("Algorithm not matched. Expected " + algorithm
+          + ", Received " + checksum.getAlgorithmName());
     }
     }
     //check length
     //check length
     if (length != checksum.getLength()) {
     if (length != checksum.getLength()) {