MCPcopy
hub / github.com/killbill/killbill / rndUUIDv4

Method rndUUIDv4

api/src/main/java/org/killbill/billing/util/UUIDs.java:42–74  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

40 }
41
42 private static UUID rndUUIDv4() {
43 // ~ return UUID.randomUUID() :
44 final Random random = threadRandom.get();
45
46 final byte[] uuid = new byte[16];
47 random.nextBytes(uuid);
48 uuid[6] &= 0x0f; /* clear version */
49 uuid[6] |= 0x40; /* set to version 4 */
50 uuid[8] &= 0x3f; /* clear variant */
51 uuid[8] |= 0x80; /* set to IETF variant */
52
53 long msb = 0;
54 msb = (msb << 8) | (uuid[0] & 0xff);
55 msb = (msb << 8) | (uuid[1] & 0xff);
56 msb = (msb << 8) | (uuid[2] & 0xff);
57 msb = (msb << 8) | (uuid[3] & 0xff);
58 msb = (msb << 8) | (uuid[4] & 0xff);
59 msb = (msb << 8) | (uuid[5] & 0xff);
60 msb = (msb << 8) | (uuid[6] & 0xff);
61 msb = (msb << 8) | (uuid[7] & 0xff);
62
63 long lsb = 0;
64 lsb = (lsb << 8) | (uuid[8] & 0xff);
65 lsb = (lsb << 8) | (uuid[9] & 0xff);
66 lsb = (lsb << 8) | (uuid[10] & 0xff);
67 lsb = (lsb << 8) | (uuid[11] & 0xff);
68 lsb = (lsb << 8) | (uuid[12] & 0xff);
69 lsb = (lsb << 8) | (uuid[13] & 0xff);
70 lsb = (lsb << 8) | (uuid[14] & 0xff);
71 lsb = (lsb << 8) | (uuid[15] & 0xff);
72
73 return new UUID(msb, lsb);
74 }
75
76 private static final ThreadLocal<Random> threadRandom =
77 new ThreadLocal<Random>() {

Callers 1

randomUUIDMethod · 0.95

Calls 2

getMethod · 0.65
nextBytesMethod · 0.45

Tested by

no test coverage detected