code: private boolean readZeroes(int bytes) {
        int endPosition = dataPosition + bytes;
        if (endPosition > dataSize) {
          return false;
        }
        for (int i = dataPosition; i < endPosition; i++) {
          if (data[i] == null || !data[i].isEncodedAsAllZeroBytes) {
            return false;
          }
        }
        // Note in this case we short-circuit other verification -- even if we are reading weirdly
        // clobbered zeroes, they're still zeroes.  Future reads might fail, though.
        dataPosition = endPosition;
        return true;
      }
docs: Determines if there is a sequence of castable zeroes, and consumes them.
  
  <p>This is the only exception for strong typing, because zero bytes are portable and
  unambiguous. There are a few situations where well-written code can rely on this, so it is
  worthwhile making a special exception for. This tolerates partially-overwritten and truncated
  values if all bytes are zero.