diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java index 4cd50ced57f1..e7be17ad4715 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/bucket/BucketCache.java @@ -52,6 +52,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.function.Consumer; import java.util.function.Function; +import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.mutable.MutableInt; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; @@ -1488,11 +1489,7 @@ private void retrieveFromFile(int[] bucketSizes) throws IOException { try (FileInputStream in = new FileInputStream(persistenceFile)) { int pblen = ProtobufMagic.lengthOfPBMagic(); byte[] pbuf = new byte[pblen]; - int read = in.read(pbuf); - if (read != pblen) { - throw new IOException("Incorrect number of bytes read while checking for protobuf magic " - + "number. Requested=" + pblen + ", Received= " + read + ", File=" + persistencePath); - } + IOUtils.readFully(in, pbuf, 0, pblen); if (ProtobufMagic.isPBMagicPrefix(pbuf)) { LOG.info("Reading old format of persistence."); // The old non-chunked version of backing map persistence.