public final class sun.rmi.transport.ObjectTable
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.rmi.transport.ObjectTable
  super_class: java.lang.Object
{
  private static final long gcInterval;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

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

  private static final java.util.Map<sun.rmi.transport.ObjectEndpoint, sun.rmi.transport.Target> objTable;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Lsun/rmi/transport/ObjectEndpoint;Lsun/rmi/transport/Target;>;

  private static final java.util.Map<sun.rmi.transport.WeakRef, sun.rmi.transport.Target> implTable;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Lsun/rmi/transport/WeakRef;Lsun/rmi/transport/Target;>;

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

  private static int keepAliveCount;
    descriptor: I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.lang.Thread reaper;
    descriptor: Ljava/lang/Thread;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static final java.lang.ref.ReferenceQueue<java.lang.Object> reapQueue;
    descriptor: Ljava/lang/ref/ReferenceQueue;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    Signature: Ljava/lang/ref/ReferenceQueue<Ljava/lang/Object;>;

  private static sun.rmi.transport.GC$LatencyRequest gcLatencyRequest;
    descriptor: Lsun/rmi/transport/GC$LatencyRequest;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 52
            invokedynamic run()Ljava/security/PrivilegedAction;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  sun/rmi/transport/ObjectTable.lambda$0()Ljava/lang/Long; (6)
                  ()Ljava/lang/Long;
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
         1: .line 51
            putstatic sun.rmi.transport.ObjectTable.gcInterval:J
         2: .line 59
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic sun.rmi.transport.ObjectTable.tableLock:Ljava/lang/Object;
         3: .line 63
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
         4: .line 62
            putstatic sun.rmi.transport.ObjectTable.objTable:Ljava/util/Map;
         5: .line 65
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
         6: .line 64
            putstatic sun.rmi.transport.ObjectTable.implTable:Ljava/util/Map;
         7: .line 71
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic sun.rmi.transport.ObjectTable.keepAliveLock:Ljava/lang/Object;
         8: .line 74
            iconst_0
            putstatic sun.rmi.transport.ObjectTable.keepAliveCount:I
         9: .line 77
            aconst_null
            putstatic sun.rmi.transport.ObjectTable.reaper:Ljava/lang/Thread;
        10: .line 80
            new java.lang.ref.ReferenceQueue
            dup
            invokespecial java.lang.ref.ReferenceQueue.<init>:()V
            putstatic sun.rmi.transport.ObjectTable.reapQueue:Ljava/lang/ref/ReferenceQueue;
        11: .line 83
            aconst_null
            putstatic sun.rmi.transport.ObjectTable.gcLatencyRequest:Lsun/rmi/transport/GC$LatencyRequest;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.rmi.transport.ObjectTable this
         0: .line 88
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // sun.rmi.transport.ObjectTable this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/rmi/transport/ObjectTable;

  static sun.rmi.transport.Target getTarget(sun.rmi.transport.ObjectEndpoint);
    descriptor: (Lsun/rmi/transport/ObjectEndpoint;)Lsun/rmi/transport/Target;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.rmi.transport.ObjectEndpoint oe
         0: .line 94
            getstatic sun.rmi.transport.ObjectTable.tableLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 95
            getstatic sun.rmi.transport.ObjectTable.objTable:Ljava/util/Map;
            aload 0 /* oe */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.rmi.transport.Target
            aload 1
            monitorexit
         2: areturn
         3: .line 94
      StackMap locals: sun.rmi.transport.ObjectEndpoint java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // sun.rmi.transport.ObjectEndpoint oe
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0    oe  Lsun/rmi/transport/ObjectEndpoint;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    MethodParameters:
      Name  Flags
      oe    

  public static sun.rmi.transport.Target getTarget(java.rmi.Remote);
    descriptor: (Ljava/rmi/Remote;)Lsun/rmi/transport/Target;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.rmi.Remote impl
         0: .line 103
            getstatic sun.rmi.transport.ObjectTable.tableLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 104
            getstatic sun.rmi.transport.ObjectTable.implTable:Ljava/util/Map;
            new sun.rmi.transport.WeakRef
            dup
            aload 0 /* impl */
            invokespecial sun.rmi.transport.WeakRef.<init>:(Ljava/lang/Object;)V
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.rmi.transport.Target
            aload 1
            monitorexit
         2: areturn
         3: .line 103
      StackMap locals: java.rmi.Remote java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // java.rmi.Remote impl
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  impl  Ljava/rmi/Remote;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    MethodParameters:
      Name  Flags
      impl  

  public static java.rmi.Remote getStub(java.rmi.Remote);
    descriptor: (Ljava/rmi/Remote;)Ljava/rmi/Remote;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.rmi.Remote impl
         0: .line 120
            aload 0 /* impl */
            invokestatic sun.rmi.transport.ObjectTable.getTarget:(Ljava/rmi/Remote;)Lsun/rmi/transport/Target;
            astore 1 /* target */
        start local 1 // sun.rmi.transport.Target target
         1: .line 121
            aload 1 /* target */
            ifnonnull 3
         2: .line 122
            new java.rmi.NoSuchObjectException
            dup
            ldc "object not exported"
            invokespecial java.rmi.NoSuchObjectException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 124
      StackMap locals: sun.rmi.transport.Target
      StackMap stack:
            aload 1 /* target */
            invokevirtual sun.rmi.transport.Target.getStub:()Ljava/rmi/Remote;
            areturn
        end local 1 // sun.rmi.transport.Target target
        end local 0 // java.rmi.Remote impl
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    impl  Ljava/rmi/Remote;
            1    4     1  target  Lsun/rmi/transport/Target;
    Exceptions:
      throws java.rmi.NoSuchObjectException
    MethodParameters:
      Name  Flags
      impl  

  public static boolean unexportObject(java.rmi.Remote, boolean);
    descriptor: (Ljava/rmi/Remote;Z)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.rmi.Remote obj
        start local 1 // boolean force
         0: .line 148
            getstatic sun.rmi.transport.ObjectTable.tableLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 149
            aload 0 /* obj */
            invokestatic sun.rmi.transport.ObjectTable.getTarget:(Ljava/rmi/Remote;)Lsun/rmi/transport/Target;
            astore 3 /* target */
        start local 3 // sun.rmi.transport.Target target
         2: .line 150
            aload 3 /* target */
            ifnonnull 4
         3: .line 151
            new java.rmi.NoSuchObjectException
            dup
            ldc "object not exported"
            invokespecial java.rmi.NoSuchObjectException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 153
      StackMap locals: java.lang.Object sun.rmi.transport.Target
      StackMap stack:
            aload 3 /* target */
            iload 1 /* force */
            invokevirtual sun.rmi.transport.Target.unexport:(Z)Z
            ifeq 8
         5: .line 154
            aload 3 /* target */
            invokestatic sun.rmi.transport.ObjectTable.removeTarget:(Lsun/rmi/transport/Target;)V
         6: .line 155
            aload 2
            monitorexit
         7: iconst_1
            ireturn
         8: .line 157
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
         9: iconst_0
            ireturn
        end local 3 // sun.rmi.transport.Target target
        10: .line 148
      StackMap locals: java.rmi.Remote int java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        11: athrow
        end local 1 // boolean force
        end local 0 // java.rmi.Remote obj
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   12     0     obj  Ljava/rmi/Remote;
            0   12     1   force  Z
            2   10     3  target  Lsun/rmi/transport/Target;
      Exception table:
        from    to  target  type
           1     7      10  any
           8     9      10  any
          10    11      10  any
    Exceptions:
      throws java.rmi.NoSuchObjectException
    MethodParameters:
       Name  Flags
      obj    
      force  

  static void putTarget(sun.rmi.transport.Target);
    descriptor: (Lsun/rmi/transport/Target;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // sun.rmi.transport.Target target
         0: .line 169
            aload 0 /* target */
            invokevirtual sun.rmi.transport.Target.getObjectEndpoint:()Lsun/rmi/transport/ObjectEndpoint;
            astore 1 /* oe */
        start local 1 // sun.rmi.transport.ObjectEndpoint oe
         1: .line 170
            aload 0 /* target */
            invokevirtual sun.rmi.transport.Target.getWeakImpl:()Lsun/rmi/transport/WeakRef;
            astore 2 /* weakImpl */
        start local 2 // sun.rmi.transport.WeakRef weakImpl
         2: .line 172
            getstatic sun.rmi.transport.DGCImpl.dgcLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
            invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 4
         3: .line 173
            getstatic sun.rmi.transport.DGCImpl.dgcLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
            new java.lang.StringBuilder
            dup
            ldc "add object "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* oe */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         4: .line 176
      StackMap locals: sun.rmi.transport.ObjectEndpoint sun.rmi.transport.WeakRef
      StackMap stack:
            getstatic sun.rmi.transport.ObjectTable.tableLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         5: .line 182
            aload 0 /* target */
            invokevirtual sun.rmi.transport.Target.getImpl:()Ljava/rmi/Remote;
            ifnull 16
         6: .line 183
            getstatic sun.rmi.transport.ObjectTable.objTable:Ljava/util/Map;
            aload 1 /* oe */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 10
         7: .line 184
            new java.rmi.server.ExportException
            dup
         8: .line 185
            ldc "internal error: ObjID already in use"
         9: .line 184
            invokespecial java.rmi.server.ExportException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 186
      StackMap locals: java.lang.Object
      StackMap stack:
            getstatic sun.rmi.transport.ObjectTable.implTable:Ljava/util/Map;
            aload 2 /* weakImpl */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 12
        11: .line 187
            new java.rmi.server.ExportException
            dup
            ldc "object already exported"
            invokespecial java.rmi.server.ExportException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 190
      StackMap locals:
      StackMap stack:
            getstatic sun.rmi.transport.ObjectTable.objTable:Ljava/util/Map;
            aload 1 /* oe */
            aload 0 /* target */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 191
            getstatic sun.rmi.transport.ObjectTable.implTable:Ljava/util/Map;
            aload 2 /* weakImpl */
            aload 0 /* target */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 193
            aload 0 /* target */
            invokevirtual sun.rmi.transport.Target.isPermanent:()Z
            ifne 16
        15: .line 194
            invokestatic sun.rmi.transport.ObjectTable.incrementKeepAliveCount:()V
        16: .line 176
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        17: goto 20
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: aload 3
            monitorexit
        19: athrow
        20: .line 198
      StackMap locals:
      StackMap stack:
            return
        end local 2 // sun.rmi.transport.WeakRef weakImpl
        end local 1 // sun.rmi.transport.ObjectEndpoint oe
        end local 0 // sun.rmi.transport.Target target
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   21     0    target  Lsun/rmi/transport/Target;
            1   21     1        oe  Lsun/rmi/transport/ObjectEndpoint;
            2   21     2  weakImpl  Lsun/rmi/transport/WeakRef;
      Exception table:
        from    to  target  type
           5    17      18  any
          18    19      18  any
    Exceptions:
      throws java.rmi.server.ExportException
    MethodParameters:
        Name  Flags
      target  

  private static void removeTarget(sun.rmi.transport.Target);
    descriptor: (Lsun/rmi/transport/Target;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // sun.rmi.transport.Target target
         0: .line 209
            aload 0 /* target */
            invokevirtual sun.rmi.transport.Target.getObjectEndpoint:()Lsun/rmi/transport/ObjectEndpoint;
            astore 1 /* oe */
        start local 1 // sun.rmi.transport.ObjectEndpoint oe
         1: .line 210
            aload 0 /* target */
            invokevirtual sun.rmi.transport.Target.getWeakImpl:()Lsun/rmi/transport/WeakRef;
            astore 2 /* weakImpl */
        start local 2 // sun.rmi.transport.WeakRef weakImpl
         2: .line 212
            getstatic sun.rmi.transport.DGCImpl.dgcLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
            invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 4
         3: .line 213
            getstatic sun.rmi.transport.DGCImpl.dgcLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
            new java.lang.StringBuilder
            dup
            ldc "remove object "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* oe */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
         4: .line 216
      StackMap locals: sun.rmi.transport.ObjectEndpoint sun.rmi.transport.WeakRef
      StackMap stack:
            getstatic sun.rmi.transport.ObjectTable.objTable:Ljava/util/Map;
            aload 1 /* oe */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 217
            getstatic sun.rmi.transport.ObjectTable.implTable:Ljava/util/Map;
            aload 2 /* weakImpl */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 219
            aload 0 /* target */
            invokevirtual sun.rmi.transport.Target.markRemoved:()V
         7: .line 220
            return
        end local 2 // sun.rmi.transport.WeakRef weakImpl
        end local 1 // sun.rmi.transport.ObjectEndpoint oe
        end local 0 // sun.rmi.transport.Target target
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0    target  Lsun/rmi/transport/Target;
            1    8     1        oe  Lsun/rmi/transport/ObjectEndpoint;
            2    8     2  weakImpl  Lsun/rmi/transport/WeakRef;
    MethodParameters:
        Name  Flags
      target  

  static void referenced(java.rmi.server.ObjID, long, java.rmi.dgc.VMID);
    descriptor: (Ljava/rmi/server/ObjID;JLjava/rmi/dgc/VMID;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=7, args_size=3
        start local 0 // java.rmi.server.ObjID id
        start local 1 // long sequenceNum
        start local 3 // java.rmi.dgc.VMID vmid
         0: .line 228
            getstatic sun.rmi.transport.ObjectTable.tableLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         1: .line 230
            new sun.rmi.transport.ObjectEndpoint
            dup
            aload 0 /* id */
            invokestatic sun.rmi.transport.Transport.currentTransport:()Lsun/rmi/transport/Transport;
            invokespecial sun.rmi.transport.ObjectEndpoint.<init>:(Ljava/rmi/server/ObjID;Lsun/rmi/transport/Transport;)V
         2: .line 229
            astore 5 /* oe */
        start local 5 // sun.rmi.transport.ObjectEndpoint oe
         3: .line 231
            getstatic sun.rmi.transport.ObjectTable.objTable:Ljava/util/Map;
            aload 5 /* oe */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.rmi.transport.Target
            astore 6 /* target */
        start local 6 // sun.rmi.transport.Target target
         4: .line 232
            aload 6 /* target */
            ifnull 6
         5: .line 233
            aload 6 /* target */
            lload 1 /* sequenceNum */
            aload 3 /* vmid */
            invokevirtual sun.rmi.transport.Target.referenced:(JLjava/rmi/dgc/VMID;)V
        end local 6 // sun.rmi.transport.Target target
        end local 5 // sun.rmi.transport.ObjectEndpoint oe
         6: .line 228
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 4
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 4
            monitorexit
         9: athrow
        10: .line 236
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.rmi.dgc.VMID vmid
        end local 1 // long sequenceNum
        end local 0 // java.rmi.server.ObjID id
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0           id  Ljava/rmi/server/ObjID;
            0   11     1  sequenceNum  J
            0   11     3         vmid  Ljava/rmi/dgc/VMID;
            3    6     5           oe  Lsun/rmi/transport/ObjectEndpoint;
            4    6     6       target  Lsun/rmi/transport/Target;
      Exception table:
        from    to  target  type
           1     7       8  any
           8     9       8  any
    MethodParameters:
             Name  Flags
      id           
      sequenceNum  
      vmid         

  static void unreferenced(java.rmi.server.ObjID, long, java.rmi.dgc.VMID, boolean);
    descriptor: (Ljava/rmi/server/ObjID;JLjava/rmi/dgc/VMID;Z)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // java.rmi.server.ObjID id
        start local 1 // long sequenceNum
        start local 3 // java.rmi.dgc.VMID vmid
        start local 4 // boolean strong
         0: .line 246
            getstatic sun.rmi.transport.ObjectTable.tableLock:Ljava/lang/Object;
            dup
            astore 5
            monitorenter
         1: .line 248
            new sun.rmi.transport.ObjectEndpoint
            dup
            aload 0 /* id */
            invokestatic sun.rmi.transport.Transport.currentTransport:()Lsun/rmi/transport/Transport;
            invokespecial sun.rmi.transport.ObjectEndpoint.<init>:(Ljava/rmi/server/ObjID;Lsun/rmi/transport/Transport;)V
         2: .line 247
            astore 6 /* oe */
        start local 6 // sun.rmi.transport.ObjectEndpoint oe
         3: .line 249
            getstatic sun.rmi.transport.ObjectTable.objTable:Ljava/util/Map;
            aload 6 /* oe */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.rmi.transport.Target
            astore 7 /* target */
        start local 7 // sun.rmi.transport.Target target
         4: .line 250
            aload 7 /* target */
            ifnull 6
         5: .line 251
            aload 7 /* target */
            lload 1 /* sequenceNum */
            aload 3 /* vmid */
            iload 4 /* strong */
            invokevirtual sun.rmi.transport.Target.unreferenced:(JLjava/rmi/dgc/VMID;Z)V
        end local 7 // sun.rmi.transport.Target target
        end local 6 // sun.rmi.transport.ObjectEndpoint oe
         6: .line 246
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 5
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 5
            monitorexit
         9: athrow
        10: .line 253
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean strong
        end local 3 // java.rmi.dgc.VMID vmid
        end local 1 // long sequenceNum
        end local 0 // java.rmi.server.ObjID id
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   11     0           id  Ljava/rmi/server/ObjID;
            0   11     1  sequenceNum  J
            0   11     3         vmid  Ljava/rmi/dgc/VMID;
            0   11     4       strong  Z
            3    6     6           oe  Lsun/rmi/transport/ObjectEndpoint;
            4    6     7       target  Lsun/rmi/transport/Target;
      Exception table:
        from    to  target  type
           1     7       8  any
           8     9       8  any
    MethodParameters:
             Name  Flags
      id           
      sequenceNum  
      vmid         
      strong       

  static void incrementKeepAliveCount();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=1, args_size=0
         0: .line 273
            getstatic sun.rmi.transport.ObjectTable.keepAliveLock:Ljava/lang/Object;
            dup
            astore 0
            monitorenter
         1: .line 274
            getstatic sun.rmi.transport.ObjectTable.keepAliveCount:I
            iconst_1
            iadd
            putstatic sun.rmi.transport.ObjectTable.keepAliveCount:I
         2: .line 276
            getstatic sun.rmi.transport.ObjectTable.reaper:Ljava/lang/Thread;
            ifnonnull 6
         3: .line 278
            new sun.rmi.runtime.NewThreadAction
            dup
            new sun.rmi.transport.ObjectTable$Reaper
            dup
            invokespecial sun.rmi.transport.ObjectTable$Reaper.<init>:()V
            ldc "Reaper"
            iconst_0
            invokespecial sun.rmi.runtime.NewThreadAction.<init>:(Ljava/lang/Runnable;Ljava/lang/String;Z)V
         4: .line 277
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Thread
            putstatic sun.rmi.transport.ObjectTable.reaper:Ljava/lang/Thread;
         5: .line 279
            getstatic sun.rmi.transport.ObjectTable.reaper:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.start:()V
         6: .line 289
      StackMap locals: java.lang.Object
      StackMap stack:
            getstatic sun.rmi.transport.ObjectTable.gcLatencyRequest:Lsun/rmi/transport/GC$LatencyRequest;
            ifnonnull 8
         7: .line 290
            getstatic sun.rmi.transport.ObjectTable.gcInterval:J
            invokestatic sun.rmi.transport.GC.requestLatency:(J)Lsun/rmi/transport/GC$LatencyRequest;
            putstatic sun.rmi.transport.ObjectTable.gcLatencyRequest:Lsun/rmi/transport/GC$LatencyRequest;
         8: .line 273
      StackMap locals:
      StackMap stack:
            aload 0
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 0
            monitorexit
        11: athrow
        12: .line 293
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           1     9      10  any
          10    11      10  any

  static void decrementKeepAliveCount();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 309
            getstatic sun.rmi.transport.ObjectTable.keepAliveLock:Ljava/lang/Object;
            dup
            astore 0
            monitorenter
         1: .line 310
            getstatic sun.rmi.transport.ObjectTable.keepAliveCount:I
            iconst_1
            isub
            putstatic sun.rmi.transport.ObjectTable.keepAliveCount:I
         2: .line 312
            getstatic sun.rmi.transport.ObjectTable.keepAliveCount:I
            ifne 8
         3: .line 313
            getstatic sun.rmi.transport.ObjectTable.reaper:Ljava/lang/Thread;
            ifnonnull 4
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         4: .line 314
      StackMap locals: java.lang.Object
      StackMap stack:
            new sun.rmi.transport.ObjectTable$1
            dup
            invokespecial sun.rmi.transport.ObjectTable$1.<init>:()V
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         5: .line 320
            aconst_null
            putstatic sun.rmi.transport.ObjectTable.reaper:Ljava/lang/Thread;
         6: .line 327
            getstatic sun.rmi.transport.ObjectTable.gcLatencyRequest:Lsun/rmi/transport/GC$LatencyRequest;
            invokevirtual sun.rmi.transport.GC$LatencyRequest.cancel:()V
         7: .line 328
            aconst_null
            putstatic sun.rmi.transport.ObjectTable.gcLatencyRequest:Lsun/rmi/transport/GC$LatencyRequest;
         8: .line 309
      StackMap locals:
      StackMap stack:
            aload 0
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 0
            monitorexit
        11: athrow
        12: .line 331
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           1     9      10  any
          10    11      10  any

  private static java.lang.Long lambda$0();
    descriptor: ()Ljava/lang/Long;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 53
            ldc "sun.rmi.dgc.server.gcInterval"
            ldc 3600000
            invokestatic java.lang.Long.getLong:(Ljava/lang/String;J)Ljava/lang/Long;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "ObjectTable.java"
NestMembers:
  sun.rmi.transport.ObjectTable$1  sun.rmi.transport.ObjectTable$Reaper
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public LatencyRequest = sun.rmi.transport.GC$LatencyRequest of sun.rmi.transport.GC
  sun.rmi.transport.ObjectTable$1
  private Reaper = sun.rmi.transport.ObjectTable$Reaper of sun.rmi.transport.ObjectTable