code: private byte[] computeClassDigest(ByteBuffer def) {
      try {
        MessageDigest alg = MessageDigest.getInstance(DIGEST_ALGORITHM);
        def.mark();
        alg.update(def);
        def.reset();
        return alg.digest();
      } catch (NoSuchAlgorithmException e) {
        throw new UnexpectedException(e);
      }
    }
docs: Computes the MD5 digest of the given class definition.
  @param def A <code>ByteBuffer</code> containing the class definition.
  @return The MD5 digest of the class definition.