Index: C:/data/jackrabbit/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/uuid/UUID.java =================================================================== --- C:/data/jackrabbit/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/uuid/UUID.java (revision 489013) +++ C:/data/jackrabbit/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/uuid/UUID.java (working copy) @@ -203,20 +203,23 @@ * @see Object#hashCode() */ public int hashCode() { - int result; - result = (int) (lsb ^ (lsb >>> 32)); - result = 29 * result + (int) (msb ^ (msb >>> 32)); - return result; + return (int)((msb >>> 32) ^ msb ^ (lsb >>> 32) ^ lsb); } /** - * Compares two UUID's for equality + * Compares two UUIDs. * * @see Comparable#compareTo(Object) */ public int compareTo(Object compareTo) throws ClassCastException { final UUID u = (UUID) compareTo; - return (int) (u.msb == msb ? lsb - u.lsb : msb - u.msb); + if (msb == u.msb) { + if (lsb == u.lsb) { + return 0; + } + return lsb > u.lsb ? 1 : -1; + } + return msb > u.msb ? 1 : -1; } /**