@Override
    public boolean next() throws IOException {
      boolean isValid = seeker.next();
      if (!isValid) {
        HFileBlock newBlock = readNextDataBlock();
        isValid = newBlock != null;
        if (isValid) {
          updateCurrentBlock(newBlock);
        } else {
          setNonSeekedState();
        }
      }
      return isValid;
    }
Updates the current block to be the given {@link HFileBlock}. Seeks to the the first
key/value pair.
@param newBlock the block to make current, and read by {@link HFileReaderImpl#readBlock},
                it's a totally new block with new allocated {@link ByteBuff}, so if no
                further reference to this block, we should release it carefully.
hbase-server/src/main/java/org/apache/hadoop/hbase/io/hfile/HFileReaderImpl.java