class sun.rmi.transport.DGCClient$EndpointEntry
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.rmi.transport.DGCClient$EndpointEntry
  super_class: java.lang.Object
{
  private sun.rmi.transport.Endpoint endpoint;
    descriptor: Lsun/rmi/transport/Endpoint;
    flags: (0x0002) ACC_PRIVATE

  private java.rmi.dgc.DGC dgc;
    descriptor: Ljava/rmi/dgc/DGC;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map refTable;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Set invalidRefs;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE

  private boolean removed;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private long renewTime;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long expirationTime;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private int dirtyFailures;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private long dirtyFailureStartTime;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long dirtyFailureDuration;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Thread renewCleanThread;
    descriptor: Ljava/lang/Thread;
    flags: (0x0002) ACC_PRIVATE

  private boolean interruptible;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.lang.ref.ReferenceQueue refQueue;
    descriptor: Ljava/lang/ref/ReferenceQueue;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Set pendingCleans;
    descriptor: Ljava/util/Set;
    flags: (0x0002) ACC_PRIVATE

  private static java.util.Map endpointTable;
    descriptor: Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

  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=3, locals=0, args_size=0
         0: .line 192
            ldc Lsun/rmi/transport/DGCClient;
            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 sun.rmi.transport.DGCClient$EndpointEntry.$assertionsDisabled:Z
         3: .line 229
            new java.util.HashMap
            dup
            iconst_5
            invokespecial java.util.HashMap.<init>:(I)V
            putstatic sun.rmi.transport.DGCClient$EndpointEntry.endpointTable:Ljava/util/Map;
         4: .line 231
            aconst_null
            putstatic sun.rmi.transport.DGCClient$EndpointEntry.gcLatencyRequest:Lsun/misc/GC$LatencyRequest;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static sun.rmi.transport.DGCClient$EndpointEntry lookup(sun.rmi.transport.Endpoint);
    descriptor: (Lsun/rmi/transport/Endpoint;)Lsun/rmi/transport/DGCClient$EndpointEntry;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // sun.rmi.transport.Endpoint ep
         0: .line 238
            getstatic sun.rmi.transport.DGCClient$EndpointEntry.endpointTable:Ljava/util/Map;
            dup
            astore 1
            monitorenter
         1: .line 239
            getstatic sun.rmi.transport.DGCClient$EndpointEntry.endpointTable:Ljava/util/Map;
            aload 0 /* ep */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.rmi.transport.DGCClient$EndpointEntry
            astore 2 /* entry */
        start local 2 // sun.rmi.transport.DGCClient$EndpointEntry entry
         2: .line 240
            aload 2 /* entry */
            ifnonnull 7
         3: .line 241
            new sun.rmi.transport.DGCClient$EndpointEntry
            dup
            aload 0 /* ep */
            invokespecial sun.rmi.transport.DGCClient$EndpointEntry.<init>:(Lsun/rmi/transport/Endpoint;)V
            astore 2 /* entry */
         4: .line 242
            getstatic sun.rmi.transport.DGCClient$EndpointEntry.endpointTable:Ljava/util/Map;
            aload 0 /* ep */
            aload 2 /* entry */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 250
            getstatic sun.rmi.transport.DGCClient$EndpointEntry.gcLatencyRequest:Lsun/misc/GC$LatencyRequest;
            ifnonnull 7
         6: .line 251
            getstatic sun.rmi.transport.DGCClient.gcInterval:J
            invokestatic sun.misc.GC.requestLatency:(J)Lsun/misc/GC$LatencyRequest;
            putstatic sun.rmi.transport.DGCClient$EndpointEntry.gcLatencyRequest:Lsun/misc/GC$LatencyRequest;
         7: .line 254
      StackMap locals: java.util.Map sun.rmi.transport.DGCClient$EndpointEntry
      StackMap stack:
            aload 2 /* entry */
            aload 1
            monitorexit
         8: areturn
        end local 2 // sun.rmi.transport.DGCClient$EndpointEntry entry
         9: .line 238
      StackMap locals: sun.rmi.transport.Endpoint java.util.Map
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        10: athrow
        end local 0 // sun.rmi.transport.Endpoint ep
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0     ep  Lsun/rmi/transport/Endpoint;
            2    9     2  entry  Lsun/rmi/transport/DGCClient$EndpointEntry;
      Exception table:
        from    to  target  type
           1     8       9  any
           9    10       9  any
    MethodParameters:
      Name  Flags
      ep    

  private void <init>(sun.rmi.transport.Endpoint);
    descriptor: (Lsun/rmi/transport/Endpoint;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // sun.rmi.transport.DGCClient$EndpointEntry this
        start local 1 // sun.rmi.transport.Endpoint endpoint
         0: .line 258
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 200
            aload 0 /* this */
            new java.util.HashMap
            dup
            iconst_5
            invokespecial java.util.HashMap.<init>:(I)V
            putfield sun.rmi.transport.DGCClient$EndpointEntry.refTable:Ljava/util/Map;
         2: .line 202
            aload 0 /* this */
            new java.util.HashSet
            dup
            iconst_5
            invokespecial java.util.HashSet.<init>:(I)V
            putfield sun.rmi.transport.DGCClient$EndpointEntry.invalidRefs:Ljava/util/Set;
         3: .line 205
            aload 0 /* this */
            iconst_0
            putfield sun.rmi.transport.DGCClient$EndpointEntry.removed:Z
         4: .line 208
            aload 0 /* this */
            ldc 9223372036854775807
            putfield sun.rmi.transport.DGCClient$EndpointEntry.renewTime:J
         5: .line 210
            aload 0 /* this */
            ldc -9223372036854775808
            putfield sun.rmi.transport.DGCClient$EndpointEntry.expirationTime:J
         6: .line 212
            aload 0 /* this */
            iconst_0
            putfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailures:I
         7: .line 221
            aload 0 /* this */
            iconst_0
            putfield sun.rmi.transport.DGCClient$EndpointEntry.interruptible:Z
         8: .line 224
            aload 0 /* this */
            new java.lang.ref.ReferenceQueue
            dup
            invokespecial java.lang.ref.ReferenceQueue.<init>:()V
            putfield sun.rmi.transport.DGCClient$EndpointEntry.refQueue:Ljava/lang/ref/ReferenceQueue;
         9: .line 226
            aload 0 /* this */
            new java.util.HashSet
            dup
            iconst_5
            invokespecial java.util.HashSet.<init>:(I)V
            putfield sun.rmi.transport.DGCClient$EndpointEntry.pendingCleans:Ljava/util/Set;
        10: .line 259
            aload 0 /* this */
            aload 1 /* endpoint */
            putfield sun.rmi.transport.DGCClient$EndpointEntry.endpoint:Lsun/rmi/transport/Endpoint;
        11: .line 261
            new sun.rmi.transport.LiveRef
            dup
            getstatic sun.rmi.transport.DGCClient.dgcID:Ljava/rmi/server/ObjID;
            aload 1 /* endpoint */
            iconst_0
            invokespecial sun.rmi.transport.LiveRef.<init>:(Ljava/rmi/server/ObjID;Lsun/rmi/transport/Endpoint;Z)V
            astore 2 /* dgcRef */
        start local 2 // sun.rmi.transport.LiveRef dgcRef
        12: .line 262
            aload 0 /* this */
            ldc Lsun/rmi/transport/DGCImpl;
        13: .line 263
            new sun.rmi.server.UnicastRef
            dup
            aload 2 /* dgcRef */
            invokespecial sun.rmi.server.UnicastRef.<init>:(Lsun/rmi/transport/LiveRef;)V
            iconst_1
        14: .line 262
            invokestatic sun.rmi.server.Util.createProxy:(Ljava/lang/Class;Ljava/rmi/server/RemoteRef;Z)Ljava/rmi/Remote;
            checkcast java.rmi.dgc.DGC
            putfield sun.rmi.transport.DGCClient$EndpointEntry.dgc:Ljava/rmi/dgc/DGC;
        end local 2 // sun.rmi.transport.LiveRef dgcRef
        15: .line 264
            goto 18
      StackMap locals: sun.rmi.transport.DGCClient$EndpointEntry sun.rmi.transport.Endpoint
      StackMap stack: java.rmi.RemoteException
        16: pop
        17: .line 265
            new java.lang.Error
            dup
            ldc "internal error creating DGC stub"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
        19: .line 268
            new sun.rmi.runtime.NewThreadAction
            dup
            new sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread
            dup
            aload 0 /* this */
            invokespecial sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.<init>:(Lsun/rmi/transport/DGCClient$EndpointEntry;)V
        20: .line 269
            new java.lang.StringBuilder
            dup
            ldc "RenewClean-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* endpoint */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            iconst_1
        21: .line 268
            invokespecial sun.rmi.runtime.NewThreadAction.<init>:(Ljava/lang/Runnable;Ljava/lang/String;Z)V
        22: .line 267
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.Thread
            putfield sun.rmi.transport.DGCClient$EndpointEntry.renewCleanThread:Ljava/lang/Thread;
        23: .line 270
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.renewCleanThread:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.start:()V
        24: .line 271
            return
        end local 1 // sun.rmi.transport.Endpoint endpoint
        end local 0 // sun.rmi.transport.DGCClient$EndpointEntry this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   25     0      this  Lsun/rmi/transport/DGCClient$EndpointEntry;
            0   25     1  endpoint  Lsun/rmi/transport/Endpoint;
           12   15     2    dgcRef  Lsun/rmi/transport/LiveRef;
      Exception table:
        from    to  target  type
          11    15      16  Class java.rmi.RemoteException
    MethodParameters:
          Name  Flags
      endpoint  final

  public boolean registerRefs(java.util.List);
    descriptor: (Ljava/util/List;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // sun.rmi.transport.DGCClient$EndpointEntry this
        start local 1 // java.util.List refs
         0: .line 285
            getstatic sun.rmi.transport.DGCClient$EndpointEntry.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 287
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* refsToDirty */
        start local 2 // java.util.Set refsToDirty
         2: .line 290
            aload 0 /* this */
            dup
            astore 5
            monitorenter
         3: .line 291
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.removed:Z
            ifeq 6
         4: .line 292
            aload 5
            monitorexit
         5: iconst_0
            ireturn
         6: .line 295
      StackMap locals: sun.rmi.transport.DGCClient$EndpointEntry java.util.List java.util.Set top top sun.rmi.transport.DGCClient$EndpointEntry
      StackMap stack:
            aload 1 /* refs */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 6 /* iter */
        start local 6 // java.util.Iterator iter
         7: .line 296
            goto 19
         8: .line 297
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 6 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.rmi.transport.LiveRef
            astore 7 /* ref */
        start local 7 // sun.rmi.transport.LiveRef ref
         9: .line 298
            getstatic sun.rmi.transport.DGCClient$EndpointEntry.$assertionsDisabled:Z
            ifne 10
            aload 7 /* ref */
            invokevirtual sun.rmi.transport.LiveRef.getEndpoint:()Lsun/rmi/transport/Endpoint;
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.endpoint:Lsun/rmi/transport/Endpoint;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 10
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        10: .line 300
      StackMap locals: sun.rmi.transport.LiveRef
      StackMap stack:
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.refTable:Ljava/util/Map;
            aload 7 /* ref */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.rmi.transport.DGCClient$EndpointEntry$RefEntry
            astore 8 /* refEntry */
        start local 8 // sun.rmi.transport.DGCClient$EndpointEntry$RefEntry refEntry
        11: .line 301
            aload 8 /* refEntry */
            ifnonnull 18
        12: .line 302
            aload 7 /* ref */
            invokevirtual sun.rmi.transport.LiveRef.clone:()Ljava/lang/Object;
            checkcast sun.rmi.transport.LiveRef
            astore 9 /* refClone */
        start local 9 // sun.rmi.transport.LiveRef refClone
        13: .line 303
            new sun.rmi.transport.DGCClient$EndpointEntry$RefEntry
            dup
            aload 0 /* this */
            aload 9 /* refClone */
            invokespecial sun.rmi.transport.DGCClient$EndpointEntry$RefEntry.<init>:(Lsun/rmi/transport/DGCClient$EndpointEntry;Lsun/rmi/transport/LiveRef;)V
            astore 8 /* refEntry */
        14: .line 304
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.refTable:Ljava/util/Map;
            aload 9 /* refClone */
            aload 8 /* refEntry */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        15: .line 305
            aload 2 /* refsToDirty */
            ifnonnull 17
        16: .line 306
            new java.util.HashSet
            dup
            iconst_5
            invokespecial java.util.HashSet.<init>:(I)V
            astore 2 /* refsToDirty */
        17: .line 308
      StackMap locals: sun.rmi.transport.DGCClient$EndpointEntry$RefEntry sun.rmi.transport.LiveRef
      StackMap stack:
            aload 2 /* refsToDirty */
            aload 8 /* refEntry */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        end local 9 // sun.rmi.transport.LiveRef refClone
        18: .line 311
      StackMap locals:
      StackMap stack:
            aload 8 /* refEntry */
            aload 7 /* ref */
            invokevirtual sun.rmi.transport.DGCClient$EndpointEntry$RefEntry.addInstanceToRefSet:(Lsun/rmi/transport/LiveRef;)V
        end local 8 // sun.rmi.transport.DGCClient$EndpointEntry$RefEntry refEntry
        end local 7 // sun.rmi.transport.LiveRef ref
        19: .line 296
      StackMap locals:
      StackMap stack:
            aload 6 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 8
        20: .line 314
            aload 2 /* refsToDirty */
            ifnonnull 23
        21: .line 315
            aload 5
            monitorexit
        22: iconst_1
            ireturn
        23: .line 318
      StackMap locals:
      StackMap stack:
            aload 2 /* refsToDirty */
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.invalidRefs:Ljava/util/Set;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        24: .line 319
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.invalidRefs:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
        25: .line 321
            invokestatic sun.rmi.transport.DGCClient.getNextSequenceNum:()J
            lstore 3 /* sequenceNum */
        end local 6 // java.util.Iterator iter
        start local 3 // long sequenceNum
        26: .line 290
            aload 5
            monitorexit
        27: goto 30
        end local 3 // long sequenceNum
      StackMap locals: sun.rmi.transport.DGCClient$EndpointEntry java.util.List java.util.Set top top sun.rmi.transport.DGCClient$EndpointEntry
      StackMap stack: java.lang.Throwable
        28: aload 5
            monitorexit
        29: athrow
        start local 3 // long sequenceNum
        30: .line 324
      StackMap locals: sun.rmi.transport.DGCClient$EndpointEntry java.util.List java.util.Set long
      StackMap stack:
            aload 0 /* this */
            aload 2 /* refsToDirty */
            lload 3 /* sequenceNum */
            invokevirtual sun.rmi.transport.DGCClient$EndpointEntry.makeDirtyCall:(Ljava/util/Set;J)V
        31: .line 325
            iconst_1
            ireturn
        end local 3 // long sequenceNum
        end local 2 // java.util.Set refsToDirty
        end local 1 // java.util.List refs
        end local 0 // sun.rmi.transport.DGCClient$EndpointEntry this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   32     0         this  Lsun/rmi/transport/DGCClient$EndpointEntry;
            0   32     1         refs  Ljava/util/List;
            2   32     2  refsToDirty  Ljava/util/Set;
           26   28     3  sequenceNum  J
           30   32     3  sequenceNum  J
            7   26     6         iter  Ljava/util/Iterator;
            9   19     7          ref  Lsun/rmi/transport/LiveRef;
           11   19     8     refEntry  Lsun/rmi/transport/DGCClient$EndpointEntry$RefEntry;
           13   18     9     refClone  Lsun/rmi/transport/LiveRef;
      Exception table:
        from    to  target  type
           3     5      28  any
           6    22      28  any
          23    27      28  any
          28    29      28  any
    MethodParameters:
      Name  Flags
      refs  

  private void removeRefEntry(sun.rmi.transport.DGCClient$EndpointEntry$RefEntry);
    descriptor: (Lsun/rmi/transport/DGCClient$EndpointEntry$RefEntry;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // sun.rmi.transport.DGCClient$EndpointEntry this
        start local 1 // sun.rmi.transport.DGCClient$EndpointEntry$RefEntry refEntry
         0: .line 336
            getstatic sun.rmi.transport.DGCClient$EndpointEntry.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 337
      StackMap locals:
      StackMap stack:
            getstatic sun.rmi.transport.DGCClient$EndpointEntry.$assertionsDisabled:Z
            ifne 2
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.removed:Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 338
      StackMap locals:
      StackMap stack:
            getstatic sun.rmi.transport.DGCClient$EndpointEntry.$assertionsDisabled:Z
            ifne 3
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.refTable:Ljava/util/Map;
            aload 1 /* refEntry */
            invokevirtual sun.rmi.transport.DGCClient$EndpointEntry$RefEntry.getRef:()Lsun/rmi/transport/LiveRef;
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifne 3
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         3: .line 340
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.refTable:Ljava/util/Map;
            aload 1 /* refEntry */
            invokevirtual sun.rmi.transport.DGCClient$EndpointEntry$RefEntry.getRef:()Lsun/rmi/transport/LiveRef;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 341
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.invalidRefs:Ljava/util/Set;
            aload 1 /* refEntry */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         5: .line 342
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.refTable:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 19
         6: .line 343
            getstatic sun.rmi.transport.DGCClient$EndpointEntry.endpointTable:Ljava/util/Map;
            dup
            astore 2
            monitorenter
         7: .line 344
            getstatic sun.rmi.transport.DGCClient$EndpointEntry.endpointTable:Ljava/util/Map;
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.endpoint:Lsun/rmi/transport/Endpoint;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         8: .line 345
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.endpoint:Lsun/rmi/transport/Endpoint;
            invokeinterface sun.rmi.transport.Endpoint.getOutboundTransport:()Lsun/rmi/transport/Transport;
            astore 3 /* transport */
        start local 3 // sun.rmi.transport.Transport transport
         9: .line 346
            aload 3 /* transport */
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.endpoint:Lsun/rmi/transport/Endpoint;
            invokevirtual sun.rmi.transport.Transport.free:(Lsun/rmi/transport/Endpoint;)V
        10: .line 352
            getstatic sun.rmi.transport.DGCClient$EndpointEntry.endpointTable:Ljava/util/Map;
            invokeinterface java.util.Map.isEmpty:()Z
            ifeq 14
        11: .line 353
            getstatic sun.rmi.transport.DGCClient$EndpointEntry.$assertionsDisabled:Z
            ifne 12
            getstatic sun.rmi.transport.DGCClient$EndpointEntry.gcLatencyRequest:Lsun/misc/GC$LatencyRequest;
            ifnonnull 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 354
      StackMap locals: java.util.Map sun.rmi.transport.Transport
      StackMap stack:
            getstatic sun.rmi.transport.DGCClient$EndpointEntry.gcLatencyRequest:Lsun/misc/GC$LatencyRequest;
            invokevirtual sun.misc.GC$LatencyRequest.cancel:()V
        13: .line 355
            aconst_null
            putstatic sun.rmi.transport.DGCClient$EndpointEntry.gcLatencyRequest:Lsun/misc/GC$LatencyRequest;
        14: .line 357
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield sun.rmi.transport.DGCClient$EndpointEntry.removed:Z
        end local 3 // sun.rmi.transport.Transport transport
        15: .line 343
            aload 2
            monitorexit
        16: goto 19
      StackMap locals: sun.rmi.transport.DGCClient$EndpointEntry sun.rmi.transport.DGCClient$EndpointEntry$RefEntry java.util.Map
      StackMap stack: java.lang.Throwable
        17: aload 2
            monitorexit
        18: athrow
        19: .line 360
      StackMap locals:
      StackMap stack:
            return
        end local 1 // sun.rmi.transport.DGCClient$EndpointEntry$RefEntry refEntry
        end local 0 // sun.rmi.transport.DGCClient$EndpointEntry this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0       this  Lsun/rmi/transport/DGCClient$EndpointEntry;
            0   20     1   refEntry  Lsun/rmi/transport/DGCClient$EndpointEntry$RefEntry;
            9   15     3  transport  Lsun/rmi/transport/Transport;
      Exception table:
        from    to  target  type
           7    16      17  any
          17    18      17  any
    MethodParameters:
          Name  Flags
      refEntry  

  private void makeDirtyCall(java.util.Set, long);
    descriptor: (Ljava/util/Set;J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=15, args_size=3
        start local 0 // sun.rmi.transport.DGCClient$EndpointEntry this
        start local 1 // java.util.Set refEntries
        start local 2 // long sequenceNum
         0: .line 370
            getstatic sun.rmi.transport.DGCClient$EndpointEntry.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 373
      StackMap locals:
      StackMap stack:
            aload 1 /* refEntries */
            ifnull 4
         2: .line 374
            aload 1 /* refEntries */
            invokestatic sun.rmi.transport.DGCClient$EndpointEntry.createObjIDArray:(Ljava/util/Set;)[Ljava/rmi/server/ObjID;
            astore 4 /* ids */
        start local 4 // java.rmi.server.ObjID[] ids
         3: .line 375
            goto 5
        end local 4 // java.rmi.server.ObjID[] ids
         4: .line 376
      StackMap locals:
      StackMap stack:
            getstatic sun.rmi.transport.DGCClient.emptyObjIDArray:[Ljava/rmi/server/ObjID;
            astore 4 /* ids */
        start local 4 // java.rmi.server.ObjID[] ids
         5: .line 379
      StackMap locals: java.rmi.server.ObjID[]
      StackMap stack:
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 5 /* startTime */
        start local 5 // long startTime
         6: .line 382
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.dgc:Ljava/rmi/dgc/DGC;
            aload 4 /* ids */
            lload 2 /* sequenceNum */
            new java.rmi.dgc.Lease
            dup
            getstatic sun.rmi.transport.DGCClient.vmid:Ljava/rmi/dgc/VMID;
            getstatic sun.rmi.transport.DGCClient.leaseValue:J
            invokespecial java.rmi.dgc.Lease.<init>:(Ljava/rmi/dgc/VMID;J)V
            invokeinterface java.rmi.dgc.DGC.dirty:([Ljava/rmi/server/ObjID;JLjava/rmi/dgc/Lease;)Ljava/rmi/dgc/Lease;
         7: .line 381
            astore 7 /* lease */
        start local 7 // java.rmi.dgc.Lease lease
         8: .line 383
            aload 7 /* lease */
            invokevirtual java.rmi.dgc.Lease.getValue:()J
            lstore 8 /* duration */
        start local 8 // long duration
         9: .line 385
            lload 5 /* startTime */
            lload 8 /* duration */
            invokestatic sun.rmi.transport.DGCClient.computeRenewTime:(JJ)J
            lstore 10 /* newRenewTime */
        start local 10 // long newRenewTime
        10: .line 386
            lload 5 /* startTime */
            lload 8 /* duration */
            ladd
            lstore 12 /* newExpirationTime */
        start local 12 // long newExpirationTime
        11: .line 388
            aload 0 /* this */
            dup
            astore 14
            monitorenter
        12: .line 389
            aload 0 /* this */
            iconst_0
            putfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailures:I
        13: .line 390
            aload 0 /* this */
            lload 10 /* newRenewTime */
            invokevirtual sun.rmi.transport.DGCClient$EndpointEntry.setRenewTime:(J)V
        14: .line 391
            aload 0 /* this */
            lload 12 /* newExpirationTime */
            putfield sun.rmi.transport.DGCClient$EndpointEntry.expirationTime:J
        15: .line 388
            aload 14
            monitorexit
        16: goto 65
      StackMap locals: sun.rmi.transport.DGCClient$EndpointEntry java.util.Set long java.rmi.server.ObjID[] long java.rmi.dgc.Lease long long long sun.rmi.transport.DGCClient$EndpointEntry
      StackMap stack: java.lang.Throwable
        17: aload 14
            monitorexit
        18: athrow
        end local 12 // long newExpirationTime
        end local 10 // long newRenewTime
        end local 8 // long duration
        end local 7 // java.rmi.dgc.Lease lease
        19: .line 394
      StackMap locals: sun.rmi.transport.DGCClient$EndpointEntry java.util.Set long java.rmi.server.ObjID[] long
      StackMap stack: java.lang.Exception
            astore 7 /* e */
        start local 7 // java.lang.Exception e
        20: .line 395
            invokestatic java.lang.System.currentTimeMillis:()J
            lstore 8 /* endTime */
        start local 8 // long endTime
        21: .line 397
            aload 0 /* this */
            dup
            astore 10
            monitorenter
        22: .line 398
            aload 0 /* this */
            dup
            getfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailures:I
            iconst_1
            iadd
            putfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailures:I
        23: .line 400
            aload 7 /* e */
            instanceof java.rmi.UnmarshalException
            ifeq 28
        24: .line 401
            aload 7 /* e */
            invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
            instanceof java.io.InvalidClassException
            ifeq 28
        25: .line 402
            getstatic sun.rmi.transport.DGCImpl.dgcLog:Lsun/rmi/runtime/Log;
            getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
            ldc "InvalidClassException exception in DGC dirty call"
            aload 7 /* e */
            invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        26: .line 403
            aload 10
            monitorexit
        27: return
        28: .line 406
      StackMap locals: java.lang.Exception long sun.rmi.transport.DGCClient$EndpointEntry
      StackMap stack:
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailures:I
            iconst_1
            if_icmpne 33
        29: .line 414
            aload 0 /* this */
            lload 5 /* startTime */
            putfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailureStartTime:J
        30: .line 415
            aload 0 /* this */
            lload 8 /* endTime */
            lload 5 /* startTime */
            lsub
            putfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailureDuration:J
        31: .line 416
            aload 0 /* this */
            lload 8 /* endTime */
            invokevirtual sun.rmi.transport.DGCClient$EndpointEntry.setRenewTime:(J)V
        32: .line 417
            goto 52
        33: .line 423
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailures:I
            iconst_2
            isub
            istore 11 /* n */
        start local 11 // int n
        34: .line 424
            iload 11 /* n */
            ifne 44
        35: .line 431
            aload 0 /* this */
        36: .line 432
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailureDuration:J
        37: .line 433
            lload 8 /* endTime */
            lload 5 /* startTime */
            lsub
        38: .line 432
            ladd
        39: .line 433
            iconst_1
        40: .line 432
            lshr
        41: .line 433
            ldc 1000
        42: .line 432
            invokestatic java.lang.Math.max:(JJ)J
        43: .line 431
            putfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailureDuration:J
        44: .line 436
      StackMap locals: int
      StackMap stack:
            lload 8 /* endTime */
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailureDuration:J
            iload 11 /* n */
            lshl
            ladd
        45: .line 435
            lstore 12 /* newRenewTime */
        start local 12 // long newRenewTime
        46: .line 444
            lload 12 /* newRenewTime */
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.expirationTime:J
            lcmp
            iflt 49
        47: .line 445
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailures:I
            iconst_5
            if_icmplt 49
        48: .line 446
            lload 12 /* newRenewTime */
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailureStartTime:J
            getstatic sun.rmi.transport.DGCClient.leaseValue:J
            ladd
            lcmp
            ifge 51
        49: .line 448
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            lload 12 /* newRenewTime */
            invokevirtual sun.rmi.transport.DGCClient$EndpointEntry.setRenewTime:(J)V
        50: .line 449
            goto 52
        51: .line 454
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc 9223372036854775807
            invokevirtual sun.rmi.transport.DGCClient$EndpointEntry.setRenewTime:(J)V
        end local 12 // long newRenewTime
        end local 11 // int n
        52: .line 458
      StackMap locals:
      StackMap stack:
            aload 1 /* refEntries */
            ifnull 59
        53: .line 466
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.invalidRefs:Ljava/util/Set;
            aload 1 /* refEntries */
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        54: .line 473
            aload 1 /* refEntries */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 11 /* iter */
        start local 11 // java.util.Iterator iter
        55: .line 474
            goto 58
        56: .line 475
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 11 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.rmi.transport.DGCClient$EndpointEntry$RefEntry
            astore 12 /* refEntry */
        start local 12 // sun.rmi.transport.DGCClient$EndpointEntry$RefEntry refEntry
        57: .line 476
            aload 12 /* refEntry */
            invokevirtual sun.rmi.transport.DGCClient$EndpointEntry$RefEntry.markDirtyFailed:()V
        end local 12 // sun.rmi.transport.DGCClient$EndpointEntry$RefEntry refEntry
        58: .line 474
      StackMap locals:
      StackMap stack:
            aload 11 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 56
        end local 11 // java.util.Iterator iter
        59: .line 484
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.renewTime:J
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.expirationTime:J
            lcmp
            iflt 61
        60: .line 485
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.invalidRefs:Ljava/util/Set;
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.refTable:Ljava/util/Map;
            invokeinterface java.util.Map.values:()Ljava/util/Collection;
            invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
            pop
        61: .line 397
      StackMap locals:
      StackMap stack:
            aload 10
            monitorexit
        62: goto 65
      StackMap locals:
      StackMap stack: java.lang.Throwable
        63: aload 10
            monitorexit
        64: athrow
        end local 8 // long endTime
        end local 7 // java.lang.Exception e
        65: .line 489
      StackMap locals:
      StackMap stack:
            return
        end local 5 // long startTime
        end local 4 // java.rmi.server.ObjID[] ids
        end local 2 // long sequenceNum
        end local 1 // java.util.Set refEntries
        end local 0 // sun.rmi.transport.DGCClient$EndpointEntry this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   66     0               this  Lsun/rmi/transport/DGCClient$EndpointEntry;
            0   66     1         refEntries  Ljava/util/Set;
            0   66     2        sequenceNum  J
            3    4     4                ids  [Ljava/rmi/server/ObjID;
            5   66     4                ids  [Ljava/rmi/server/ObjID;
            6   66     5          startTime  J
            8   19     7              lease  Ljava/rmi/dgc/Lease;
            9   19     8           duration  J
           10   19    10       newRenewTime  J
           11   19    12  newExpirationTime  J
           20   65     7                  e  Ljava/lang/Exception;
           21   65     8            endTime  J
           34   52    11                  n  I
           46   52    12       newRenewTime  J
           55   59    11               iter  Ljava/util/Iterator;
           57   58    12           refEntry  Lsun/rmi/transport/DGCClient$EndpointEntry$RefEntry;
      Exception table:
        from    to  target  type
          12    16      17  any
          17    18      17  any
           6    19      19  Class java.lang.Exception
          22    27      63  any
          28    62      63  any
          63    64      63  any
    MethodParameters:
             Name  Flags
      refEntries   
      sequenceNum  

  private void setRenewTime(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // sun.rmi.transport.DGCClient$EndpointEntry this
        start local 1 // long newRenewTime
         0: .line 498
            getstatic sun.rmi.transport.DGCClient$EndpointEntry.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 500
      StackMap locals:
      StackMap stack:
            lload 1 /* newRenewTime */
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.renewTime:J
            lcmp
            ifge 7
         2: .line 501
            aload 0 /* this */
            lload 1 /* newRenewTime */
            putfield sun.rmi.transport.DGCClient$EndpointEntry.renewTime:J
         3: .line 502
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.interruptible:Z
            ifeq 8
         4: .line 504
            new sun.rmi.transport.DGCClient$EndpointEntry$1
            dup
            aload 0 /* this */
            invokespecial sun.rmi.transport.DGCClient$EndpointEntry$1.<init>:(Lsun/rmi/transport/DGCClient$EndpointEntry;)V
         5: .line 503
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            pop
         6: .line 511
            goto 8
         7: .line 512
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* newRenewTime */
            putfield sun.rmi.transport.DGCClient$EndpointEntry.renewTime:J
         8: .line 514
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long newRenewTime
        end local 0 // sun.rmi.transport.DGCClient$EndpointEntry this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Lsun/rmi/transport/DGCClient$EndpointEntry;
            0    9     1  newRenewTime  J
    MethodParameters:
              Name  Flags
      newRenewTime  

  private void processPhantomRefs(sun.rmi.transport.DGCClient$EndpointEntry$RefEntry$PhantomLiveRef);
    descriptor: (Lsun/rmi/transport/DGCClient$EndpointEntry$RefEntry$PhantomLiveRef;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // sun.rmi.transport.DGCClient$EndpointEntry this
        start local 1 // sun.rmi.transport.DGCClient$EndpointEntry$RefEntry$PhantomLiveRef phantom
         0: .line 629
            getstatic sun.rmi.transport.DGCClient$EndpointEntry.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifne 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 631
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2 /* strongCleans */
        start local 2 // java.util.Set strongCleans
         2: .line 632
            aconst_null
            astore 3 /* normalCleans */
        start local 3 // java.util.Set normalCleans
         3: .line 635
      StackMap locals: java.util.Set java.util.Set
      StackMap stack:
            aload 1 /* phantom */
            invokevirtual sun.rmi.transport.DGCClient$EndpointEntry$RefEntry$PhantomLiveRef.getRefEntry:()Lsun/rmi/transport/DGCClient$EndpointEntry$RefEntry;
            astore 4 /* refEntry */
        start local 4 // sun.rmi.transport.DGCClient$EndpointEntry$RefEntry refEntry
         4: .line 636
            aload 4 /* refEntry */
            aload 1 /* phantom */
            invokevirtual sun.rmi.transport.DGCClient$EndpointEntry$RefEntry.removeInstanceFromRefSet:(Lsun/rmi/transport/DGCClient$EndpointEntry$RefEntry$PhantomLiveRef;)V
         5: .line 637
            aload 4 /* refEntry */
            invokevirtual sun.rmi.transport.DGCClient$EndpointEntry$RefEntry.isRefSetEmpty:()Z
            ifeq 15
         6: .line 638
            aload 4 /* refEntry */
            invokevirtual sun.rmi.transport.DGCClient$EndpointEntry$RefEntry.hasDirtyFailed:()Z
            ifeq 11
         7: .line 639
            aload 2 /* strongCleans */
            ifnonnull 9
         8: .line 640
            new java.util.HashSet
            dup
            iconst_5
            invokespecial java.util.HashSet.<init>:(I)V
            astore 2 /* strongCleans */
         9: .line 642
      StackMap locals: sun.rmi.transport.DGCClient$EndpointEntry$RefEntry
      StackMap stack:
            aload 2 /* strongCleans */
            aload 4 /* refEntry */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        10: .line 643
            goto 14
        11: .line 644
      StackMap locals:
      StackMap stack:
            aload 3 /* normalCleans */
            ifnonnull 13
        12: .line 645
            new java.util.HashSet
            dup
            iconst_5
            invokespecial java.util.HashSet.<init>:(I)V
            astore 3 /* normalCleans */
        13: .line 647
      StackMap locals:
      StackMap stack:
            aload 3 /* normalCleans */
            aload 4 /* refEntry */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        14: .line 649
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* refEntry */
            invokevirtual sun.rmi.transport.DGCClient$EndpointEntry.removeRefEntry:(Lsun/rmi/transport/DGCClient$EndpointEntry$RefEntry;)V
        end local 4 // sun.rmi.transport.DGCClient$EndpointEntry$RefEntry refEntry
        15: .line 652
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.refQueue:Ljava/lang/ref/ReferenceQueue;
            invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
            checkcast sun.rmi.transport.DGCClient$EndpointEntry$RefEntry$PhantomLiveRef
        16: .line 651
            dup
            astore 1 /* phantom */
            ifnonnull 3
        17: .line 654
            aload 2 /* strongCleans */
            ifnull 23
        18: .line 655
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.pendingCleans:Ljava/util/Set;
        19: .line 656
            new sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest
            dup
            aload 2 /* strongCleans */
            invokestatic sun.rmi.transport.DGCClient$EndpointEntry.createObjIDArray:(Ljava/util/Set;)[Ljava/rmi/server/ObjID;
        20: .line 657
            invokestatic sun.rmi.transport.DGCClient.getNextSequenceNum:()J
            iconst_1
        21: .line 656
            invokespecial sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest.<init>:([Ljava/rmi/server/ObjID;JZ)V
        22: .line 655
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        23: .line 659
      StackMap locals:
      StackMap stack:
            aload 3 /* normalCleans */
            ifnull 29
        24: .line 660
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.pendingCleans:Ljava/util/Set;
        25: .line 661
            new sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest
            dup
            aload 3 /* normalCleans */
            invokestatic sun.rmi.transport.DGCClient$EndpointEntry.createObjIDArray:(Ljava/util/Set;)[Ljava/rmi/server/ObjID;
        26: .line 662
            invokestatic sun.rmi.transport.DGCClient.getNextSequenceNum:()J
            iconst_0
        27: .line 661
            invokespecial sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest.<init>:([Ljava/rmi/server/ObjID;JZ)V
        28: .line 660
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        29: .line 664
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.Set normalCleans
        end local 2 // java.util.Set strongCleans
        end local 1 // sun.rmi.transport.DGCClient$EndpointEntry$RefEntry$PhantomLiveRef phantom
        end local 0 // sun.rmi.transport.DGCClient$EndpointEntry this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   30     0          this  Lsun/rmi/transport/DGCClient$EndpointEntry;
            0   30     1       phantom  Lsun/rmi/transport/DGCClient$EndpointEntry$RefEntry$PhantomLiveRef;
            2   30     2  strongCleans  Ljava/util/Set;
            3   30     3  normalCleans  Ljava/util/Set;
            4   15     4      refEntry  Lsun/rmi/transport/DGCClient$EndpointEntry$RefEntry;
    MethodParameters:
         Name  Flags
      phantom  

  private void makeCleanCalls();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=1
        start local 0 // sun.rmi.transport.DGCClient$EndpointEntry this
         0: .line 694
            getstatic sun.rmi.transport.DGCClient$EndpointEntry.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 696
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.pendingCleans:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 1 /* iter */
        start local 1 // java.util.Iterator iter
         2: .line 697
            goto 12
         3: .line 698
      StackMap locals: java.util.Iterator
      StackMap stack:
            aload 1 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest
            astore 2 /* request */
        start local 2 // sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest request
         4: .line 700
            aload 0 /* this */
            getfield sun.rmi.transport.DGCClient$EndpointEntry.dgc:Ljava/rmi/dgc/DGC;
            aload 2 /* request */
            getfield sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest.objIDs:[Ljava/rmi/server/ObjID;
            aload 2 /* request */
            getfield sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest.sequenceNum:J
            getstatic sun.rmi.transport.DGCClient.vmid:Ljava/rmi/dgc/VMID;
         5: .line 701
            aload 2 /* request */
            getfield sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest.strong:Z
         6: .line 700
            invokeinterface java.rmi.dgc.DGC.clean:([Ljava/rmi/server/ObjID;JLjava/rmi/dgc/VMID;Z)V
         7: .line 702
            aload 1 /* iter */
            invokeinterface java.util.Iterator.remove:()V
         8: .line 703
            goto 12
      StackMap locals: sun.rmi.transport.DGCClient$EndpointEntry java.util.Iterator sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest
      StackMap stack: java.lang.Exception
         9: pop
        10: .line 709
            aload 2 /* request */
            dup
            getfield sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest.failures:I
            iconst_1
            iadd
            dup_x1
            putfield sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest.failures:I
            iconst_5
            if_icmplt 12
        11: .line 710
            aload 1 /* iter */
            invokeinterface java.util.Iterator.remove:()V
        end local 2 // sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest request
        12: .line 697
      StackMap locals:
      StackMap stack:
            aload 1 /* iter */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        13: .line 714
            return
        end local 1 // java.util.Iterator iter
        end local 0 // sun.rmi.transport.DGCClient$EndpointEntry this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   14     0     this  Lsun/rmi/transport/DGCClient$EndpointEntry;
            2   14     1     iter  Ljava/util/Iterator;
            4   12     2  request  Lsun/rmi/transport/DGCClient$EndpointEntry$CleanRequest;
      Exception table:
        from    to  target  type
           4     8       9  Class java.lang.Exception

  private static java.rmi.server.ObjID[] createObjIDArray(java.util.Set);
    descriptor: (Ljava/util/Set;)[Ljava/rmi/server/ObjID;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // java.util.Set refEntries
         0: .line 721
            aload 0 /* refEntries */
            invokeinterface java.util.Set.size:()I
            anewarray java.rmi.server.ObjID
            astore 1 /* ids */
        start local 1 // java.rmi.server.ObjID[] ids
         1: .line 722
            aload 0 /* refEntries */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 2 /* iter */
        start local 2 // java.util.Iterator iter
         2: .line 723
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 6
         4: .line 724
      StackMap locals: java.rmi.server.ObjID[] java.util.Iterator int
      StackMap stack:
            aload 1 /* ids */
            iload 3 /* i */
            aload 2 /* iter */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast sun.rmi.transport.DGCClient$EndpointEntry$RefEntry
            invokevirtual sun.rmi.transport.DGCClient$EndpointEntry$RefEntry.getRef:()Lsun/rmi/transport/LiveRef;
            invokevirtual sun.rmi.transport.LiveRef.getObjID:()Ljava/rmi/server/ObjID;
            aastore
         5: .line 723
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 1 /* ids */
            arraylength
            if_icmplt 4
        end local 3 // int i
         7: .line 726
            aload 1 /* ids */
            areturn
        end local 2 // java.util.Iterator iter
        end local 1 // java.rmi.server.ObjID[] ids
        end local 0 // java.util.Set refEntries
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0  refEntries  Ljava/util/Set;
            1    8     1         ids  [Ljava/rmi/server/ObjID;
            2    8     2        iter  Ljava/util/Iterator;
            3    7     3           i  I
    MethodParameters:
            Name  Flags
      refEntries  
}
SourceFile: "DGCClient.java"
NestHost: sun.rmi.transport.DGCClient
InnerClasses:
  public LatencyRequest = sun.misc.GC$LatencyRequest of sun.misc.GC
  private EndpointEntry = sun.rmi.transport.DGCClient$EndpointEntry of sun.rmi.transport.DGCClient
  sun.rmi.transport.DGCClient$EndpointEntry$1
  private CleanRequest = sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest of sun.rmi.transport.DGCClient$EndpointEntry
  private RefEntry = sun.rmi.transport.DGCClient$EndpointEntry$RefEntry of sun.rmi.transport.DGCClient$EndpointEntry
  private PhantomLiveRef = sun.rmi.transport.DGCClient$EndpointEntry$RefEntry$PhantomLiveRef of sun.rmi.transport.DGCClient$EndpointEntry$RefEntry
  private RenewCleanThread = sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread of sun.rmi.transport.DGCClient$EndpointEntry