Author: jing9 Date: Tue Feb 4 23:17:05 2014 New Revision: 1564557 URL: http://svn.apache.org/r1564557 Log: HDFS-5884. LoadDelegator should use IOUtils.readFully() to read the magic header. Contributed by Haohui Mai.
Modified: hadoop/common/branches/HDFS-5698/hadoop-hdfs-project/hadoop-hdfs/CHANGES_HDFS-5698.txt hadoop/common/branches/HDFS-5698/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImageFormat.java Modified: hadoop/common/branches/HDFS-5698/hadoop-hdfs-project/hadoop-hdfs/CHANGES_HDFS-5698.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-5698/hadoop-hdfs-project/hadoop-hdfs/CHANGES_HDFS-5698.txt?rev=1564557&r1=1564556&r2=1564557&view=diff ============================================================================== --- hadoop/common/branches/HDFS-5698/hadoop-hdfs-project/hadoop-hdfs/CHANGES_HDFS-5698.txt (original) +++ hadoop/common/branches/HDFS-5698/hadoop-hdfs-project/hadoop-hdfs/CHANGES_HDFS-5698.txt Tue Feb 4 23:17:05 2014 @@ -1,6 +1,6 @@ HDFS-5698 subtasks - HDFS-5717. Save FSImage header in protobuf. (Haohui Mai via jing9) + HDFS-5717. Save FSImage header in protobuf. (Haohui Mai via jing9) HDFS-5738. Serialize INode information in protobuf. (Haohui Mai via jing9) @@ -25,7 +25,7 @@ HDFS-5698 subtasks HDFS-5808. Implement cancellation when saving FSImage. (Haohui Mai via jing9) - HDFS-5826. Update the stored edit logs to be consistent with the changes in + HDFS-5826. Update the stored edit logs to be consistent with the changes in HDFS-5698 branch. (Haohui Mai via jing9) HDFS-5797. Implement offline image viewer. (Haohui Mai via jing9) @@ -34,3 +34,6 @@ HDFS-5698 subtasks HDFS-5871. Use PBHelper to serialize CacheDirectiveInfoExpirationProto. (Haohui Mai via jing9) + + HDFS-5884. LoadDelegator should use IOUtils.readFully() to read the magic + header. (Haohui Mai via jing9) Modified: hadoop/common/branches/HDFS-5698/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImageFormat.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/HDFS-5698/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImageFormat.java?rev=1564557&r1=1564556&r2=1564557&view=diff ============================================================================== --- hadoop/common/branches/HDFS-5698/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImageFormat.java (original) +++ hadoop/common/branches/HDFS-5698/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImageFormat.java Tue Feb 4 23:17:05 2014 @@ -208,12 +208,12 @@ public class FSImageFormat { public void load(File file) throws IOException { Preconditions.checkState(impl == null, "Image already loaded!"); - byte[] magic = new byte[FSImageUtil.MAGIC_HEADER.length]; FileInputStream is = null; try { is = new FileInputStream(file); - if (is.read(magic) == magic.length - && Arrays.equals(magic, FSImageUtil.MAGIC_HEADER)) { + byte[] magic = new byte[FSImageUtil.MAGIC_HEADER.length]; + IOUtils.readFully(is, magic, 0, magic.length); + if (Arrays.equals(magic, FSImageUtil.MAGIC_HEADER)) { FSImageFormatProtobuf.Loader loader = new FSImageFormatProtobuf.Loader( conf, fsn); impl = loader;