code: public byte[] getHash() {
  		
  		// digester.digest() resets the digester, so it cannot be called multiple times,
  		// therefore we cache the hash
  		if(hash  == null) {
  			hash = hasher.getDigester().digest();
  			if(hasher.getSalt() != null) {
  				hasher.getDigester().update(hasher.getSalt());
  			}
  		}
  		return hash;
  	}
docs: Calculates the hash value. Note, that since MessageDigest is reset when digest()
  is called, therefore this method cannot be called incrementally, i.e. while still
  processing the buffer. However, the hash value is cached in this filter,
  so the getHash() method can be safely called multiple times.
  
  @return the hash value