--- old/src/share/classes/java/util/UUID.java 2014-06-14 22:28:16.080457652 +0400 +++ new/src/share/classes/java/util/UUID.java 2014-06-14 22:28:15.592219785 +0400 @@ -373,17 +373,11 @@ * @return A string representation of this {@code UUID} */ public String toString() { - return (digits(mostSigBits >> 32, 8) + "-" + - digits(mostSigBits >> 16, 4) + "-" + - digits(mostSigBits, 4) + "-" + - digits(leastSigBits >> 48, 4) + "-" + - digits(leastSigBits, 12)); - } - - /** Returns val represented by the specified number of hex digits. */ - private static String digits(long val, int digits) { - long hi = 1L << (digits * 4); - return Long.toHexString(hi | (val & (hi - 1))).substring(1); + return Long.toHexString((mostSigBits >>> 32) & 0xFFFFFFFFL, 8) + '-' + + Long.toHexString((mostSigBits >>> 16) & 0xFFFFL, 4) + '-' + + Long.toHexString( mostSigBits & 0xFFFFL, 4) + '-' + + Long.toHexString((leastSigBits >>> 48) & 0xFFFFL, 4) + '-' + + Long.toHexString( leastSigBits & 0xFFFFFFFFFFFFL, 12); } /**