public final class java.rmi.server.UID implements java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: java.rmi.server.UID
  super_class: java.lang.Object
{
  private static int hostUnique;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static boolean hostUniqueSet;
    descriptor: Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final java.lang.Object lock;
    descriptor: Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static long lastTime;
    descriptor: J
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static short lastCount;
    descriptor: S
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1086053664494604050

  private final int unique;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long time;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final short count;
    descriptor: S
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 74
            iconst_0
            putstatic java.rmi.server.UID.hostUniqueSet:Z
         1: .line 76
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic java.rmi.server.UID.lock:Ljava/lang/Object;
         2: .line 77
            invokestatic java.lang.System.currentTimeMillis:()J
            putstatic java.rmi.server.UID.lastTime:J
         3: .line 78
            sipush -32768
            putstatic java.rmi.server.UID.lastCount:S
         4: .line 81
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=1
        start local 0 // java.rmi.server.UID this
         0: .line 108
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 110
            getstatic java.rmi.server.UID.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         2: .line 111
            getstatic java.rmi.server.UID.hostUniqueSet:Z
            ifne 5
         3: .line 112
            new java.security.SecureRandom
            dup
            invokespecial java.security.SecureRandom.<init>:()V
            invokevirtual java.security.SecureRandom.nextInt:()I
            putstatic java.rmi.server.UID.hostUnique:I
         4: .line 113
            iconst_1
            putstatic java.rmi.server.UID.hostUniqueSet:Z
         5: .line 115
      StackMap locals: java.rmi.server.UID java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getstatic java.rmi.server.UID.hostUnique:I
            putfield java.rmi.server.UID.unique:I
         6: .line 116
            getstatic java.rmi.server.UID.lastCount:S
            sipush 32767
            if_icmpne 25
         7: .line 117
            invokestatic java.lang.Thread.interrupted:()Z
            istore 2 /* interrupted */
        start local 2 // boolean interrupted
         8: .line 118
            iconst_0
            istore 3 /* done */
        start local 3 // boolean done
         9: .line 119
            goto 22
        10: .line 120
      StackMap locals: int int
      StackMap stack:
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 4 /* now */
        start local 4 // long now
        11: .line 121
            lload 4 /* now */
            getstatic java.rmi.server.UID.lastTime:J
            lcmp
            ifne 17
        12: .line 124
            lconst_1
            invokestatic java.lang.Thread.sleep:(J)V
        13: .line 125
            goto 22
      StackMap locals: java.rmi.server.UID java.lang.Object int int long
      StackMap stack: java.lang.InterruptedException
        14: pop
        15: .line 126
            iconst_1
            istore 2 /* interrupted */
        16: .line 128
            goto 22
        17: .line 131
      StackMap locals:
      StackMap stack:
            lload 4 /* now */
            getstatic java.rmi.server.UID.lastTime:J
            lcmp
            ifge 18
            getstatic java.rmi.server.UID.lastTime:J
            lconst_1
            ladd
            goto 19
      StackMap locals:
      StackMap stack:
        18: lload 4 /* now */
      StackMap locals:
      StackMap stack: long
        19: putstatic java.rmi.server.UID.lastTime:J
        20: .line 132
            sipush -32768
            putstatic java.rmi.server.UID.lastCount:S
        21: .line 133
            iconst_1
            istore 3 /* done */
        end local 4 // long now
        22: .line 119
      StackMap locals:
      StackMap stack:
            iload 3 /* done */
            ifeq 10
        23: .line 136
            iload 2 /* interrupted */
            ifeq 25
        24: .line 137
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            invokevirtual java.lang.Thread.interrupt:()V
        end local 3 // boolean done
        end local 2 // boolean interrupted
        25: .line 140
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic java.rmi.server.UID.lastTime:J
            putfield java.rmi.server.UID.time:J
        26: .line 141
            aload 0 /* this */
            getstatic java.rmi.server.UID.lastCount:S
            dup
            iconst_1
            iadd
            i2s
            putstatic java.rmi.server.UID.lastCount:S
            putfield java.rmi.server.UID.count:S
        27: .line 110
            aload 1
            monitorexit
        28: goto 31
      StackMap locals:
      StackMap stack: java.lang.Throwable
        29: aload 1
            monitorexit
        30: athrow
        31: .line 143
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.rmi.server.UID this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   32     0         this  Ljava/rmi/server/UID;
            8   25     2  interrupted  Z
            9   25     3         done  Z
           11   22     4          now  J
      Exception table:
        from    to  target  type
          12    13      14  Class java.lang.InterruptedException
           2    28      29  any
          29    30      29  any

  public void <init>(short);
    descriptor: (S)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.rmi.server.UID this
        start local 1 // short num
         0: .line 156
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 157
            aload 0 /* this */
            iconst_0
            putfield java.rmi.server.UID.unique:I
         2: .line 158
            aload 0 /* this */
            lconst_0
            putfield java.rmi.server.UID.time:J
         3: .line 159
            aload 0 /* this */
            iload 1 /* num */
            putfield java.rmi.server.UID.count:S
         4: .line 160
            return
        end local 1 // short num
        end local 0 // java.rmi.server.UID this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljava/rmi/server/UID;
            0    5     1   num  S
    MethodParameters:
      Name  Flags
      num   

  private void <init>(int, long, short);
    descriptor: (IJS)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // java.rmi.server.UID this
        start local 1 // int unique
        start local 2 // long time
        start local 4 // short count
         0: .line 165
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 166
            aload 0 /* this */
            iload 1 /* unique */
            putfield java.rmi.server.UID.unique:I
         2: .line 167
            aload 0 /* this */
            lload 2 /* time */
            putfield java.rmi.server.UID.time:J
         3: .line 168
            aload 0 /* this */
            iload 4 /* count */
            putfield java.rmi.server.UID.count:S
         4: .line 169
            return
        end local 4 // short count
        end local 2 // long time
        end local 1 // int unique
        end local 0 // java.rmi.server.UID this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Ljava/rmi/server/UID;
            0    5     1  unique  I
            0    5     2    time  J
            0    5     4   count  S
    MethodParameters:
        Name  Flags
      unique  
      time    
      count   

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.rmi.server.UID this
         0: .line 177
            aload 0 /* this */
            getfield java.rmi.server.UID.time:J
            l2i
            aload 0 /* this */
            getfield java.rmi.server.UID.count:S
            iadd
            ireturn
        end local 0 // java.rmi.server.UID this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljava/rmi/server/UID;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // java.rmi.server.UID this
        start local 1 // java.lang.Object obj
         0: .line 195
            aload 1 /* obj */
            instanceof java.rmi.server.UID
            ifeq 7
         1: .line 196
            aload 1 /* obj */
            checkcast java.rmi.server.UID
            astore 2 /* uid */
        start local 2 // java.rmi.server.UID uid
         2: .line 197
            aload 0 /* this */
            getfield java.rmi.server.UID.unique:I
            aload 2 /* uid */
            getfield java.rmi.server.UID.unique:I
            if_icmpne 6
         3: .line 198
            aload 0 /* this */
            getfield java.rmi.server.UID.count:S
            aload 2 /* uid */
            getfield java.rmi.server.UID.count:S
            if_icmpne 6
         4: .line 199
            aload 0 /* this */
            getfield java.rmi.server.UID.time:J
            aload 2 /* uid */
            getfield java.rmi.server.UID.time:J
            lcmp
            ifne 6
         5: .line 197
            iconst_1
            ireturn
      StackMap locals: java.rmi.server.UID
      StackMap stack:
         6: iconst_0
            ireturn
        end local 2 // java.rmi.server.UID uid
         7: .line 201
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // java.rmi.server.UID this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Ljava/rmi/server/UID;
            0    8     1   obj  Ljava/lang/Object;
            2    7     2   uid  Ljava/rmi/server/UID;
    MethodParameters:
      Name  Flags
      obj   

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // java.rmi.server.UID this
         0: .line 211
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield java.rmi.server.UID.unique:I
            bipush 16
            invokestatic java.lang.Integer.toString:(II)Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 212
            aload 0 /* this */
            getfield java.rmi.server.UID.time:J
            bipush 16
            invokestatic java.lang.Long.toString:(JI)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ":"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 213
            aload 0 /* this */
            getfield java.rmi.server.UID.count:S
            bipush 16
            invokestatic java.lang.Integer.toString:(II)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 211
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // java.rmi.server.UID this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/rmi/server/UID;

  public void write(java.io.DataOutput);
    descriptor: (Ljava/io/DataOutput;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.rmi.server.UID this
        start local 1 // java.io.DataOutput out
         0: .line 235
            aload 1 /* out */
            aload 0 /* this */
            getfield java.rmi.server.UID.unique:I
            invokeinterface java.io.DataOutput.writeInt:(I)V
         1: .line 236
            aload 1 /* out */
            aload 0 /* this */
            getfield java.rmi.server.UID.time:J
            invokeinterface java.io.DataOutput.writeLong:(J)V
         2: .line 237
            aload 1 /* out */
            aload 0 /* this */
            getfield java.rmi.server.UID.count:S
            invokeinterface java.io.DataOutput.writeShort:(I)V
         3: .line 238
            return
        end local 1 // java.io.DataOutput out
        end local 0 // java.rmi.server.UID this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/rmi/server/UID;
            0    4     1   out  Ljava/io/DataOutput;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      out   

  public static java.rmi.server.UID read(java.io.DataInput);
    descriptor: (Ljava/io/DataInput;)Ljava/rmi/server/UID;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // java.io.DataInput in
         0: .line 264
            aload 0 /* in */
            invokeinterface java.io.DataInput.readInt:()I
            istore 1 /* unique */
        start local 1 // int unique
         1: .line 265
            aload 0 /* in */
            invokeinterface java.io.DataInput.readLong:()J
            lstore 2 /* time */
        start local 2 // long time
         2: .line 266
            aload 0 /* in */
            invokeinterface java.io.DataInput.readShort:()S
            istore 4 /* count */
        start local 4 // short count
         3: .line 267
            new java.rmi.server.UID
            dup
            iload 1 /* unique */
            lload 2 /* time */
            iload 4 /* count */
            invokespecial java.rmi.server.UID.<init>:(IJS)V
            areturn
        end local 4 // short count
        end local 2 // long time
        end local 1 // int unique
        end local 0 // java.io.DataInput in
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0      in  Ljava/io/DataInput;
            1    4     1  unique  I
            2    4     2    time  J
            3    4     4   count  S
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      in    
}
SourceFile: "UID.java"