code: public final int hash(ByteBuffer buf, int seed) {
      final int hash = hash(buf, buf.position(), buf.remaining(), seed);
      buf.position(buf.limit());
      return hash;
    }
docs: Computes the hash of the given {@link ByteBuffer}. The
  {@link ByteBuffer#position() position} is moved in order to reflect bytes
  which have been read.
  
  @param buf the input data
  @param seed the seed to use
  @return the hash value