diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt index c30ea8b9f41..fd2b11e610e 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt +++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt @@ -627,7 +627,10 @@ Release 0.23.3 - UNRELEASED HDFS-3166. Add timeout to Hftp connections. (Daryn Sharp via szetszwo) -Release 0.23.2 - UNRELEASED + HDFS-3176. Use MD5MD5CRC32FileChecksum.readFields() in JsonUtil . (Kihwal + Lee via szetszwo) + +Release 0.23.2 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/web/JsonUtil.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/web/JsonUtil.java index d27b664f6d7..45c4445e84b 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/web/JsonUtil.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/web/JsonUtil.java @@ -513,18 +513,13 @@ public class JsonUtil { final byte[] bytes = StringUtils.hexStringToByte((String)m.get("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); + final MD5MD5CRC32FileChecksum checksum = new MD5MD5CRC32FileChecksum(); + checksum.readFields(in); //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); + if (!checksum.getAlgorithmName().equals(algorithm)) { + throw new IOException("Algorithm not matched. Expected " + algorithm + + ", Received " + checksum.getAlgorithmName()); } //check length if (length != checksum.getLength()) { @@ -534,4 +529,4 @@ public class JsonUtil { return checksum; } -} \ No newline at end of file +}