public class org.apache.cassandra.utils.UUIDGen
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.utils.UUIDGen
super_class: java.lang.Object
{
private static final long START_EPOCH;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -12219292800000
private static final long clockSeqAndNode;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long MIN_CLOCK_SEQ_AND_NODE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -9187201950435737472
private static final long MAX_CLOCK_SEQ_AND_NODE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 9187201950435737471
private static final java.security.SecureRandom secureRandom;
descriptor: Ljava/security/SecureRandom;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.apache.cassandra.utils.UUIDGen instance;
descriptor: Lorg/apache/cassandra/utils/UUIDGen;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private java.util.concurrent.atomic.AtomicLong lastNanos;
descriptor: Ljava/util/concurrent/atomic/AtomicLong;
flags: (0x0002) ACC_PRIVATE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lorg/apache/cassandra/utils/UUIDGen;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.apache.cassandra.utils.UUIDGen.$assertionsDisabled:Z
3: invokestatic org.apache.cassandra.utils.UUIDGen.makeClockSeqAndNode:()J
putstatic org.apache.cassandra.utils.UUIDGen.clockSeqAndNode:J
4: new java.security.SecureRandom
dup
invokespecial java.security.SecureRandom.<init>:()V
putstatic org.apache.cassandra.utils.UUIDGen.secureRandom:Ljava/security/SecureRandom;
5: new org.apache.cassandra.utils.UUIDGen
dup
invokespecial org.apache.cassandra.utils.UUIDGen.<init>:()V
putstatic org.apache.cassandra.utils.UUIDGen.instance:Lorg/apache/cassandra/utils/UUIDGen;
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.atomic.AtomicLong
dup
invokespecial java.util.concurrent.atomic.AtomicLong.<init>:()V
putfield org.apache.cassandra.utils.UUIDGen.lastNanos:Ljava/util/concurrent/atomic/AtomicLong;
2: getstatic org.apache.cassandra.utils.UUIDGen.clockSeqAndNode:J
lconst_0
lcmp
ifne 3
new java.lang.RuntimeException
dup
ldc "singleton instantiation is misplaced."
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: org.apache.cassandra.utils.UUIDGen
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/utils/UUIDGen;
public static java.util.UUID getTimeUUID();
descriptor: ()Ljava/util/UUID;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=0, args_size=0
0: new java.util.UUID
dup
getstatic org.apache.cassandra.utils.UUIDGen.instance:Lorg/apache/cassandra/utils/UUIDGen;
invokevirtual org.apache.cassandra.utils.UUIDGen.createTimeSafe:()J
getstatic org.apache.cassandra.utils.UUIDGen.clockSeqAndNode:J
invokespecial java.util.UUID.<init>:(JJ)V
areturn
LocalVariableTable:
Start End Slot Name Signature
public static java.util.UUID getTimeUUID(long);
descriptor: (J)Ljava/util/UUID;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=2, args_size=1
start local 0 0: new java.util.UUID
dup
lload 0
invokestatic org.apache.cassandra.utils.UUIDGen.fromUnixTimestamp:(J)J
invokestatic org.apache.cassandra.utils.UUIDGen.createTime:(J)J
getstatic org.apache.cassandra.utils.UUIDGen.clockSeqAndNode:J
invokespecial java.util.UUID.<init>:(JJ)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 when J
MethodParameters:
Name Flags
when
public static java.util.UUID getTimeUUIDFromMicros(long);
descriptor: (J)Ljava/util/UUID;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=6, args_size=1
start local 0 0: lload 0
ldc 1000
ldiv
lstore 2
start local 2 1: lload 0
lload 2
ldc 1000
lmul
lsub
ldc 10
lmul
lstore 4
start local 4 2: lload 2
lload 4
invokestatic org.apache.cassandra.utils.UUIDGen.getTimeUUID:(JJ)Ljava/util/UUID;
areturn
end local 4 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 whenInMicros J
1 3 2 whenInMillis J
2 3 4 nanos J
MethodParameters:
Name Flags
whenInMicros
public static java.util.UUID getRandomTimeUUIDFromMicros(long);
descriptor: (J)Ljava/util/UUID;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=6, args_size=1
start local 0 0: lload 0
ldc 1000
ldiv
lstore 2
start local 2 1: lload 0
lload 2
ldc 1000
lmul
lsub
ldc 10
lmul
lstore 4
start local 4 2: new java.util.UUID
dup
lload 2
lload 4
invokestatic org.apache.cassandra.utils.UUIDGen.fromUnixTimestamp:(JJ)J
invokestatic org.apache.cassandra.utils.UUIDGen.createTime:(J)J
getstatic org.apache.cassandra.utils.UUIDGen.secureRandom:Ljava/security/SecureRandom;
invokevirtual java.security.SecureRandom.nextLong:()J
invokespecial java.util.UUID.<init>:(JJ)V
areturn
end local 4 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 whenInMicros J
1 3 2 whenInMillis J
2 3 4 nanos J
MethodParameters:
Name Flags
whenInMicros
public static java.util.UUID getTimeUUID(long, long);
descriptor: (JJ)Ljava/util/UUID;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=2
start local 0 start local 2 0: new java.util.UUID
dup
lload 0
lload 2
invokestatic org.apache.cassandra.utils.UUIDGen.fromUnixTimestamp:(JJ)J
invokestatic org.apache.cassandra.utils.UUIDGen.createTime:(J)J
getstatic org.apache.cassandra.utils.UUIDGen.clockSeqAndNode:J
invokespecial java.util.UUID.<init>:(JJ)V
areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 when J
0 1 2 nanos J
MethodParameters:
Name Flags
when
nanos
public static java.util.UUID getTimeUUID(long, long, long);
descriptor: (JJJ)Ljava/util/UUID;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=6, args_size=3
start local 0 start local 2 start local 4 0: new java.util.UUID
dup
lload 0
lload 2
invokestatic org.apache.cassandra.utils.UUIDGen.fromUnixTimestamp:(JJ)J
invokestatic org.apache.cassandra.utils.UUIDGen.createTime:(J)J
lload 4
invokespecial java.util.UUID.<init>:(JJ)V
areturn
end local 4 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 when J
0 1 2 nanos J
0 1 4 clockSeqAndNode J
RuntimeInvisibleAnnotations:
com.google.common.annotations.VisibleForTesting()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
com.google.common.annotations.VisibleForTesting()
MethodParameters:
Name Flags
when
nanos
clockSeqAndNode
public static java.util.UUID getUUID(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Ljava/util/UUID;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=1, args_size=1
start local 0 0: new java.util.UUID
dup
aload 0
aload 0
invokevirtual java.nio.ByteBuffer.position:()I
invokevirtual java.nio.ByteBuffer.getLong:(I)J
aload 0
aload 0
invokevirtual java.nio.ByteBuffer.position:()I
bipush 8
iadd
invokevirtual java.nio.ByteBuffer.getLong:(I)J
invokespecial java.util.UUID.<init>:(JJ)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 raw Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
raw
public static java.nio.ByteBuffer toByteBuffer(java.util.UUID);
descriptor: (Ljava/util/UUID;)Ljava/nio/ByteBuffer;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: bipush 16
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 1
start local 1 1: aload 1
aload 0
invokevirtual java.util.UUID.getMostSignificantBits:()J
invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
pop
2: aload 1
aload 0
invokevirtual java.util.UUID.getLeastSignificantBits:()J
invokevirtual java.nio.ByteBuffer.putLong:(J)Ljava/nio/ByteBuffer;
pop
3: aload 1
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
4: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 uuid Ljava/util/UUID;
1 5 1 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
uuid
public static byte[] decompose(java.util.UUID);
descriptor: (Ljava/util/UUID;)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=7, args_size=1
start local 0 0: aload 0
invokevirtual java.util.UUID.getMostSignificantBits:()J
lstore 1
start local 1 1: aload 0
invokevirtual java.util.UUID.getLeastSignificantBits:()J
lstore 3
start local 3 2: bipush 16
newarray 8
astore 5
start local 5 3: iconst_0
istore 6
start local 6 4: goto 8
5: StackMap locals: java.util.UUID long long byte[] int
StackMap stack:
aload 5
iload 6
lload 1
bipush 7
iload 6
isub
bipush 8
imul
lushr
l2i
i2b
bastore
6: aload 5
bipush 8
iload 6
iadd
lload 3
bipush 7
iload 6
isub
bipush 8
imul
lushr
l2i
i2b
bastore
7: iinc 6 1
StackMap locals:
StackMap stack:
8: iload 6
bipush 8
if_icmplt 5
end local 6 9: aload 5
areturn
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 uuid Ljava/util/UUID;
1 10 1 most J
2 10 3 least J
3 10 5 b [B
4 9 6 i I
MethodParameters:
Name Flags
uuid
public static byte[] getTimeUUIDBytes();
descriptor: ()[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: getstatic org.apache.cassandra.utils.UUIDGen.instance:Lorg/apache/cassandra/utils/UUIDGen;
invokevirtual org.apache.cassandra.utils.UUIDGen.createTimeSafe:()J
invokestatic org.apache.cassandra.utils.UUIDGen.createTimeUUIDBytes:(J)[B
areturn
LocalVariableTable:
Start End Slot Name Signature
public static java.util.UUID minTimeUUID(long);
descriptor: (J)Ljava/util/UUID;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=2, args_size=1
start local 0 0: new java.util.UUID
dup
lload 0
invokestatic org.apache.cassandra.utils.UUIDGen.fromUnixTimestamp:(J)J
invokestatic org.apache.cassandra.utils.UUIDGen.createTime:(J)J
ldc -9187201950435737472
invokespecial java.util.UUID.<init>:(JJ)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 timestamp J
MethodParameters:
Name Flags
timestamp
public static java.util.UUID maxTimeUUID(long);
descriptor: (J)Ljava/util/UUID;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: lload 0
lconst_1
ladd
invokestatic org.apache.cassandra.utils.UUIDGen.fromUnixTimestamp:(J)J
lconst_1
lsub
lstore 2
start local 2 1: new java.util.UUID
dup
lload 2
invokestatic org.apache.cassandra.utils.UUIDGen.createTime:(J)J
ldc 9187201950435737471
invokespecial java.util.UUID.<init>:(JJ)V
areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 timestamp J
1 2 2 uuidTstamp J
MethodParameters:
Name Flags
timestamp
public static long unixTimestamp(java.util.UUID);
descriptor: (Ljava/util/UUID;)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.util.UUID.timestamp:()J
ldc 10000
ldiv
ldc -12219292800000
ladd
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 uuid Ljava/util/UUID;
MethodParameters:
Name Flags
uuid
public static int unixTimestampInSec(java.util.UUID);
descriptor: (Ljava/util/UUID;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
aload 0
invokestatic org.apache.cassandra.utils.UUIDGen.unixTimestamp:(Ljava/util/UUID;)J
invokevirtual java.util.concurrent.TimeUnit.toSeconds:(J)J
invokestatic com.google.common.primitives.Ints.checkedCast:(J)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 uuid Ljava/util/UUID;
MethodParameters:
Name Flags
uuid
public static long microsTimestamp(java.util.UUID);
descriptor: (Ljava/util/UUID;)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.util.UUID.timestamp:()J
ldc 10
ldiv
ldc -12219292800000000
ladd
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 uuid Ljava/util/UUID;
MethodParameters:
Name Flags
uuid
private static long fromUnixTimestamp(long);
descriptor: (J)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: lload 0
lconst_0
invokestatic org.apache.cassandra.utils.UUIDGen.fromUnixTimestamp:(JJ)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 timestamp J
MethodParameters:
Name Flags
timestamp
private static long fromUnixTimestamp(long, long);
descriptor: (JJ)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 2 0: lload 0
ldc -12219292800000
lsub
ldc 10000
lmul
lload 2
ladd
lreturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 timestamp J
0 1 2 nanos J
MethodParameters:
Name Flags
timestamp
nanos
public static byte[] getTimeUUIDBytes(long, int);
descriptor: (JI)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 2 0: iload 2
sipush 10000
if_icmplt 2
1: new java.lang.IllegalArgumentException
dup
invokespecial java.lang.IllegalArgumentException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.utils.UUIDGen.instance:Lorg/apache/cassandra/utils/UUIDGen;
lload 0
iload 2
invokevirtual org.apache.cassandra.utils.UUIDGen.createTimeUnsafe:(JI)J
invokestatic org.apache.cassandra.utils.UUIDGen.createTimeUUIDBytes:(J)[B
areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 timeMillis J
0 3 2 nanos I
MethodParameters:
Name Flags
timeMillis
nanos
private static byte[] createTimeUUIDBytes(long);
descriptor: (J)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=6, args_size=1
start local 0 0: getstatic org.apache.cassandra.utils.UUIDGen.clockSeqAndNode:J
lstore 2
start local 2 1: bipush 16
newarray 8
astore 4
start local 4 2: iconst_0
istore 5
start local 5 3: goto 6
4: StackMap locals: long byte[] int
StackMap stack:
aload 4
iload 5
lload 0
bipush 8
bipush 7
iload 5
isub
imul
lushr
l2i
i2b
bastore
5: iinc 5 1
StackMap locals:
StackMap stack:
6: iload 5
bipush 8
if_icmplt 4
end local 5 7: bipush 8
istore 5
start local 5 8: goto 11
9: StackMap locals:
StackMap stack:
aload 4
iload 5
lload 2
bipush 8
bipush 7
iload 5
isub
imul
lushr
l2i
i2b
bastore
10: iinc 5 1
StackMap locals:
StackMap stack:
11: iload 5
bipush 16
if_icmplt 9
end local 5 12: aload 4
areturn
end local 4 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 msb J
1 13 2 lsb J
2 13 4 uuidBytes [B
3 7 5 i I
8 12 5 i I
MethodParameters:
Name Flags
msb
public static long getAdjustedTimestamp(java.util.UUID);
descriptor: (Ljava/util/UUID;)J
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.util.UUID.version:()I
iconst_1
if_icmpeq 2
1: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "incompatible with uuid version: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.util.UUID.version:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.util.UUID.timestamp:()J
ldc 10000
ldiv
ldc -12219292800000
ladd
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 uuid Ljava/util/UUID;
MethodParameters:
Name Flags
uuid
private static long makeClockSeqAndNode();
descriptor: ()J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=4, args_size=0
0: new java.security.SecureRandom
dup
invokespecial java.security.SecureRandom.<init>:()V
invokevirtual java.security.SecureRandom.nextLong:()J
lstore 0
start local 0 1: lconst_0
lstore 2
start local 2 2: lload 2
ldc -9223372036854775808
lor
lstore 2
3: lload 2
lload 0
ldc 16383
land
bipush 48
lshl
lor
lstore 2
4: lload 2
invokestatic org.apache.cassandra.utils.UUIDGen.makeNode:()J
lor
lstore 2
5: lload 2
lreturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 6 0 clock J
2 6 2 lsb J
private long createTimeSafe();
descriptor: ()J
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
ldc -12219292800000
lsub
ldc 10000
lmul
lstore 1
start local 1 1: aload 0
getfield org.apache.cassandra.utils.UUIDGen.lastNanos:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.get:()J
lstore 3
start local 3 2: lload 1
lload 3
lcmp
ifle 5
3: aload 0
getfield org.apache.cassandra.utils.UUIDGen.lastNanos:Ljava/util/concurrent/atomic/AtomicLong;
lload 3
lload 1
invokevirtual java.util.concurrent.atomic.AtomicLong.compareAndSet:(JJ)Z
ifeq 0
4: goto 6
5: StackMap locals: long long
StackMap stack:
aload 0
getfield org.apache.cassandra.utils.UUIDGen.lastNanos:Ljava/util/concurrent/atomic/AtomicLong;
invokevirtual java.util.concurrent.atomic.AtomicLong.incrementAndGet:()J
lstore 1
end local 3 6: StackMap locals:
StackMap stack:
lload 1
invokestatic org.apache.cassandra.utils.UUIDGen.createTime:(J)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/apache/cassandra/utils/UUIDGen;
1 7 1 newLastNanos J
2 6 3 originalLastNanos J
private long createTimeUnsafe(long, int);
descriptor: (JI)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 3 0: lload 1
ldc -12219292800000
lsub
ldc 10000
lmul
iload 3
i2l
ladd
lstore 4
start local 4 1: lload 4
invokestatic org.apache.cassandra.utils.UUIDGen.createTime:(J)J
lreturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/apache/cassandra/utils/UUIDGen;
0 2 1 when J
0 2 3 nanos I
1 2 4 nanosSince J
MethodParameters:
Name Flags
when
nanos
private static long createTime(long);
descriptor: (J)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: lconst_0
lstore 2
start local 2 1: lload 2
ldc 4294967295
lload 0
land
bipush 32
lshl
lor
lstore 2
2: lload 2
ldc 281470681743360
lload 0
land
bipush 16
lushr
lor
lstore 2
3: lload 2
ldc -281474976710656
lload 0
land
bipush 48
lushr
lor
lstore 2
4: lload 2
ldc 4096
lor
lstore 2
5: lload 2
lreturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 nanosSince J
1 6 2 msb J
MethodParameters:
Name Flags
nanosSince
private static long makeNode();
descriptor: ()J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=5, args_size=0
0: invokestatic org.apache.cassandra.utils.FBUtilities.getAllLocalAddresses:()Ljava/util/Collection;
astore 0
start local 0 1: aload 0
invokeinterface java.util.Collection.isEmpty:()Z
ifeq 3
2: new java.lang.RuntimeException
dup
ldc "Cannot generate the node component of the UUID because cannot retrieve any IP addresses."
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.util.Collection
StackMap stack:
aload 0
invokestatic org.apache.cassandra.utils.UUIDGen.hash:(Ljava/util/Collection;)[B
astore 1
start local 1 4: lconst_0
lstore 2
start local 2 5: iconst_0
istore 4
start local 4 6: goto 9
7: StackMap locals: byte[] long int
StackMap stack:
lload 2
ldc 255
aload 1
iload 4
baload
i2l
land
iconst_5
iload 4
isub
bipush 8
imul
lshl
lor
lstore 2
8: iinc 4 1
StackMap locals:
StackMap stack:
9: iload 4
bipush 6
aload 1
arraylength
invokestatic java.lang.Math.min:(II)I
if_icmplt 7
end local 4 10: getstatic org.apache.cassandra.utils.UUIDGen.$assertionsDisabled:Z
ifne 11
ldc -72057594037927936
lload 2
land
lconst_0
lcmp
ifeq 11
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
11: StackMap locals:
StackMap stack:
lload 2
ldc 1099511627776
lor
lreturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 12 0 localAddresses Ljava/util/Collection<Ljava/net/InetAddress;>;
4 12 1 hash [B
5 12 2 node J
6 10 4 i I
private static byte[] hash(java.util.Collection<java.net.InetAddress>);
descriptor: (Ljava/util/Collection;)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=6, args_size=1
start local 0 0: ldc "MD5"
invokestatic java.security.MessageDigest.getInstance:(Ljava/lang/String;)Ljava/security/MessageDigest;
astore 1
start local 1 1: aload 0
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: java.util.Collection java.security.MessageDigest top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.net.InetAddress
astore 2
start local 2 3: aload 1
aload 2
invokevirtual java.net.InetAddress.getAddress:()[B
invokevirtual java.security.MessageDigest.update:([B)V
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: invokestatic org.apache.cassandra.utils.NativeLibrary.getProcessID:()J
lstore 2
start local 2 6: lload 2
lconst_0
lcmp
ifge 8
7: new java.util.Random
dup
invokestatic java.lang.System.currentTimeMillis:()J
invokespecial java.util.Random.<init>:(J)V
invokevirtual java.util.Random.nextLong:()J
lstore 2
8: StackMap locals: java.util.Collection java.security.MessageDigest long
StackMap stack:
aload 1
lload 2
invokestatic org.apache.cassandra.utils.FBUtilities.updateWithLong:(Ljava/security/MessageDigest;J)V
9: ldc Lorg/apache/cassandra/utils/UUIDGen;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 4
start local 4 10: aload 4
ifnull 11
aload 4
invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
goto 12
StackMap locals: java.lang.ClassLoader
StackMap stack:
11: iconst_0
StackMap locals:
StackMap stack: int
12: istore 5
start local 5 13: aload 1
iload 5
invokestatic org.apache.cassandra.utils.FBUtilities.updateWithInt:(Ljava/security/MessageDigest;I)V
14: aload 1
invokevirtual java.security.MessageDigest.digest:()[B
15: areturn
end local 5 end local 4 end local 2 end local 1 16: StackMap locals: java.util.Collection
StackMap stack: java.security.NoSuchAlgorithmException
astore 1
start local 1 17: new java.lang.RuntimeException
dup
ldc "MD5 digest algorithm is not available"
aload 1
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 data Ljava/util/Collection<Ljava/net/InetAddress;>;
1 16 1 messageDigest Ljava/security/MessageDigest;
3 4 2 addr Ljava/net/InetAddress;
6 16 2 pid J
10 16 4 loader Ljava/lang/ClassLoader;
13 16 5 loaderId I
17 18 1 nsae Ljava/security/NoSuchAlgorithmException;
Exception table:
from to target type
0 15 16 Class java.security.NoSuchAlgorithmException
Signature: (Ljava/util/Collection<Ljava/net/InetAddress;>;)[B
MethodParameters:
Name Flags
data
}
SourceFile: "UUIDGen.java"