Patch Set 1: Looks good to me, approved

the hashCode we xor with are well distributed, ie. think of them as random bits, therefor xoring them should continue to be random bits.

THe multiplication with a prime that is so common in hash code calculations is used to spread the values when the input is not a good hash by itself.