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: 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: 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: 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 0: getstatic sun.rmi.transport.DGCClient$EndpointEntry.endpointTable:Ljava/util/Map;
dup
astore 1
monitorenter
1: getstatic sun.rmi.transport.DGCClient$EndpointEntry.endpointTable:Ljava/util/Map;
aload 0
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.rmi.transport.DGCClient$EndpointEntry
astore 2
start local 2 2: aload 2
ifnonnull 7
3: new sun.rmi.transport.DGCClient$EndpointEntry
dup
aload 0
invokespecial sun.rmi.transport.DGCClient$EndpointEntry.<init>:(Lsun/rmi/transport/Endpoint;)V
astore 2
4: getstatic sun.rmi.transport.DGCClient$EndpointEntry.endpointTable:Ljava/util/Map;
aload 0
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: getstatic sun.rmi.transport.DGCClient$EndpointEntry.gcLatencyRequest:Lsun/misc/GC$LatencyRequest;
ifnonnull 7
6: 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: StackMap locals: java.util.Map sun.rmi.transport.DGCClient$EndpointEntry
StackMap stack:
aload 2
aload 1
monitorexit
8: areturn
end local 2 9: StackMap locals: sun.rmi.transport.Endpoint java.util.Map
StackMap stack: java.lang.Throwable
aload 1
monitorexit
10: athrow
end local 0 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 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
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: aload 0
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: aload 0
iconst_0
putfield sun.rmi.transport.DGCClient$EndpointEntry.removed:Z
4: aload 0
ldc 9223372036854775807
putfield sun.rmi.transport.DGCClient$EndpointEntry.renewTime:J
5: aload 0
ldc -9223372036854775808
putfield sun.rmi.transport.DGCClient$EndpointEntry.expirationTime:J
6: aload 0
iconst_0
putfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailures:I
7: aload 0
iconst_0
putfield sun.rmi.transport.DGCClient$EndpointEntry.interruptible:Z
8: aload 0
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: aload 0
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: aload 0
aload 1
putfield sun.rmi.transport.DGCClient$EndpointEntry.endpoint:Lsun/rmi/transport/Endpoint;
11: new sun.rmi.transport.LiveRef
dup
getstatic sun.rmi.transport.DGCClient.dgcID:Ljava/rmi/server/ObjID;
aload 1
iconst_0
invokespecial sun.rmi.transport.LiveRef.<init>:(Ljava/rmi/server/ObjID;Lsun/rmi/transport/Endpoint;Z)V
astore 2
start local 2 12: aload 0
ldc Lsun/rmi/transport/DGCImpl;
13: new sun.rmi.server.UnicastRef
dup
aload 2
invokespecial sun.rmi.server.UnicastRef.<init>:(Lsun/rmi/transport/LiveRef;)V
iconst_1
14: 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 15: goto 18
StackMap locals: sun.rmi.transport.DGCClient$EndpointEntry sun.rmi.transport.Endpoint
StackMap stack: java.rmi.RemoteException
16: pop
17: new java.lang.Error
dup
ldc "internal error creating DGC stub"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals:
StackMap stack:
aload 0
19: new sun.rmi.runtime.NewThreadAction
dup
new sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread
dup
aload 0
invokespecial sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.<init>:(Lsun/rmi/transport/DGCClient$EndpointEntry;)V
20: new java.lang.StringBuilder
dup
ldc "RenewClean-"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_1
21: invokespecial sun.rmi.runtime.NewThreadAction.<init>:(Ljava/lang/Runnable;Ljava/lang/String;Z)V
22: 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: aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.renewCleanThread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.start:()V
24: return
end local 1 end local 0 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 start local 1 0: getstatic sun.rmi.transport.DGCClient$EndpointEntry.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 2: aload 0
dup
astore 5
monitorenter
3: aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.removed:Z
ifeq 6
4: aload 5
monitorexit
5: iconst_0
ireturn
6: StackMap locals: sun.rmi.transport.DGCClient$EndpointEntry java.util.List java.util.Set top top sun.rmi.transport.DGCClient$EndpointEntry
StackMap stack:
aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 6
start local 6 7: goto 19
8: StackMap locals: java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.rmi.transport.LiveRef
astore 7
start local 7 9: getstatic sun.rmi.transport.DGCClient$EndpointEntry.$assertionsDisabled:Z
ifne 10
aload 7
invokevirtual sun.rmi.transport.LiveRef.getEndpoint:()Lsun/rmi/transport/Endpoint;
aload 0
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: StackMap locals: sun.rmi.transport.LiveRef
StackMap stack:
aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.refTable:Ljava/util/Map;
aload 7
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.rmi.transport.DGCClient$EndpointEntry$RefEntry
astore 8
start local 8 11: aload 8
ifnonnull 18
12: aload 7
invokevirtual sun.rmi.transport.LiveRef.clone:()Ljava/lang/Object;
checkcast sun.rmi.transport.LiveRef
astore 9
start local 9 13: new sun.rmi.transport.DGCClient$EndpointEntry$RefEntry
dup
aload 0
aload 9
invokespecial sun.rmi.transport.DGCClient$EndpointEntry$RefEntry.<init>:(Lsun/rmi/transport/DGCClient$EndpointEntry;Lsun/rmi/transport/LiveRef;)V
astore 8
14: aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.refTable:Ljava/util/Map;
aload 9
aload 8
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
15: aload 2
ifnonnull 17
16: new java.util.HashSet
dup
iconst_5
invokespecial java.util.HashSet.<init>:(I)V
astore 2
17: StackMap locals: sun.rmi.transport.DGCClient$EndpointEntry$RefEntry sun.rmi.transport.LiveRef
StackMap stack:
aload 2
aload 8
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 9 18: StackMap locals:
StackMap stack:
aload 8
aload 7
invokevirtual sun.rmi.transport.DGCClient$EndpointEntry$RefEntry.addInstanceToRefSet:(Lsun/rmi/transport/LiveRef;)V
end local 8 end local 7 19: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
20: aload 2
ifnonnull 23
21: aload 5
monitorexit
22: iconst_1
ireturn
23: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.invalidRefs:Ljava/util/Set;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
24: aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.invalidRefs:Ljava/util/Set;
invokeinterface java.util.Set.clear:()V
25: invokestatic sun.rmi.transport.DGCClient.getNextSequenceNum:()J
lstore 3
end local 6 start local 3 26: aload 5
monitorexit
27: goto 30
end local 3 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 30: StackMap locals: sun.rmi.transport.DGCClient$EndpointEntry java.util.List java.util.Set long
StackMap stack:
aload 0
aload 2
lload 3
invokevirtual sun.rmi.transport.DGCClient$EndpointEntry.makeDirtyCall:(Ljava/util/Set;J)V
31: iconst_1
ireturn
end local 3 end local 2 end local 1 end local 0 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 start local 1 0: getstatic sun.rmi.transport.DGCClient$EndpointEntry.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic sun.rmi.transport.DGCClient$EndpointEntry.$assertionsDisabled:Z
ifne 2
aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.removed:Z
ifeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
getstatic sun.rmi.transport.DGCClient$EndpointEntry.$assertionsDisabled:Z
ifne 3
aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.refTable:Ljava/util/Map;
aload 1
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: StackMap locals:
StackMap stack:
aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.refTable:Ljava/util/Map;
aload 1
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: aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.invalidRefs:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
pop
5: aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.refTable:Ljava/util/Map;
invokeinterface java.util.Map.isEmpty:()Z
ifeq 19
6: getstatic sun.rmi.transport.DGCClient$EndpointEntry.endpointTable:Ljava/util/Map;
dup
astore 2
monitorenter
7: getstatic sun.rmi.transport.DGCClient$EndpointEntry.endpointTable:Ljava/util/Map;
aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.endpoint:Lsun/rmi/transport/Endpoint;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
8: aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.endpoint:Lsun/rmi/transport/Endpoint;
invokeinterface sun.rmi.transport.Endpoint.getOutboundTransport:()Lsun/rmi/transport/Transport;
astore 3
start local 3 9: aload 3
aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.endpoint:Lsun/rmi/transport/Endpoint;
invokevirtual sun.rmi.transport.Transport.free:(Lsun/rmi/transport/Endpoint;)V
10: getstatic sun.rmi.transport.DGCClient$EndpointEntry.endpointTable:Ljava/util/Map;
invokeinterface java.util.Map.isEmpty:()Z
ifeq 14
11: 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: 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: aconst_null
putstatic sun.rmi.transport.DGCClient$EndpointEntry.gcLatencyRequest:Lsun/misc/GC$LatencyRequest;
14: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.rmi.transport.DGCClient$EndpointEntry.removed:Z
end local 3 15: 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: StackMap locals:
StackMap stack:
return
end local 1 end local 0 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 start local 1 start local 2 0: getstatic sun.rmi.transport.DGCClient$EndpointEntry.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 1
ifnull 4
2: aload 1
invokestatic sun.rmi.transport.DGCClient$EndpointEntry.createObjIDArray:(Ljava/util/Set;)[Ljava/rmi/server/ObjID;
astore 4
start local 4 3: goto 5
end local 4 4: StackMap locals:
StackMap stack:
getstatic sun.rmi.transport.DGCClient.emptyObjIDArray:[Ljava/rmi/server/ObjID;
astore 4
start local 4 5: StackMap locals: java.rmi.server.ObjID[]
StackMap stack:
invokestatic java.lang.System.currentTimeMillis:()J
lstore 5
start local 5 6: aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.dgc:Ljava/rmi/dgc/DGC;
aload 4
lload 2
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: astore 7
start local 7 8: aload 7
invokevirtual java.rmi.dgc.Lease.getValue:()J
lstore 8
start local 8 9: lload 5
lload 8
invokestatic sun.rmi.transport.DGCClient.computeRenewTime:(JJ)J
lstore 10
start local 10 10: lload 5
lload 8
ladd
lstore 12
start local 12 11: aload 0
dup
astore 14
monitorenter
12: aload 0
iconst_0
putfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailures:I
13: aload 0
lload 10
invokevirtual sun.rmi.transport.DGCClient$EndpointEntry.setRenewTime:(J)V
14: aload 0
lload 12
putfield sun.rmi.transport.DGCClient$EndpointEntry.expirationTime:J
15: 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 end local 10 end local 8 end local 7 19: StackMap locals: sun.rmi.transport.DGCClient$EndpointEntry java.util.Set long java.rmi.server.ObjID[] long
StackMap stack: java.lang.Exception
astore 7
start local 7 20: invokestatic java.lang.System.currentTimeMillis:()J
lstore 8
start local 8 21: aload 0
dup
astore 10
monitorenter
22: aload 0
dup
getfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailures:I
iconst_1
iadd
putfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailures:I
23: aload 7
instanceof java.rmi.UnmarshalException
ifeq 28
24: aload 7
invokevirtual java.lang.Exception.getCause:()Ljava/lang/Throwable;
instanceof java.io.InvalidClassException
ifeq 28
25: 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
invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
26: aload 10
monitorexit
27: return
28: StackMap locals: java.lang.Exception long sun.rmi.transport.DGCClient$EndpointEntry
StackMap stack:
aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailures:I
iconst_1
if_icmpne 33
29: aload 0
lload 5
putfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailureStartTime:J
30: aload 0
lload 8
lload 5
lsub
putfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailureDuration:J
31: aload 0
lload 8
invokevirtual sun.rmi.transport.DGCClient$EndpointEntry.setRenewTime:(J)V
32: goto 52
33: StackMap locals:
StackMap stack:
aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailures:I
iconst_2
isub
istore 11
start local 11 34: iload 11
ifne 44
35: aload 0
36: aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailureDuration:J
37: lload 8
lload 5
lsub
38: ladd
39: iconst_1
40: lshr
41: ldc 1000
42: invokestatic java.lang.Math.max:(JJ)J
43: putfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailureDuration:J
44: StackMap locals: int
StackMap stack:
lload 8
aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailureDuration:J
iload 11
lshl
ladd
45: lstore 12
start local 12 46: lload 12
aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.expirationTime:J
lcmp
iflt 49
47: aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailures:I
iconst_5
if_icmplt 49
48: lload 12
aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.dirtyFailureStartTime:J
getstatic sun.rmi.transport.DGCClient.leaseValue:J
ladd
lcmp
ifge 51
49: StackMap locals: long
StackMap stack:
aload 0
lload 12
invokevirtual sun.rmi.transport.DGCClient$EndpointEntry.setRenewTime:(J)V
50: goto 52
51: StackMap locals:
StackMap stack:
aload 0
ldc 9223372036854775807
invokevirtual sun.rmi.transport.DGCClient$EndpointEntry.setRenewTime:(J)V
end local 12 end local 11 52: StackMap locals:
StackMap stack:
aload 1
ifnull 59
53: aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.invalidRefs:Ljava/util/Set;
aload 1
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
54: aload 1
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 11
start local 11 55: goto 58
56: StackMap locals: java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.rmi.transport.DGCClient$EndpointEntry$RefEntry
astore 12
start local 12 57: aload 12
invokevirtual sun.rmi.transport.DGCClient$EndpointEntry$RefEntry.markDirtyFailed:()V
end local 12 58: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 56
end local 11 59: StackMap locals:
StackMap stack:
aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.renewTime:J
aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.expirationTime:J
lcmp
iflt 61
60: aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.invalidRefs:Ljava/util/Set;
aload 0
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: 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 end local 7 65: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 2 end local 1 end local 0 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 start local 1 0: getstatic sun.rmi.transport.DGCClient$EndpointEntry.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
lload 1
aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.renewTime:J
lcmp
ifge 7
2: aload 0
lload 1
putfield sun.rmi.transport.DGCClient$EndpointEntry.renewTime:J
3: aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.interruptible:Z
ifeq 8
4: new sun.rmi.transport.DGCClient$EndpointEntry$1
dup
aload 0
invokespecial sun.rmi.transport.DGCClient$EndpointEntry$1.<init>:(Lsun/rmi/transport/DGCClient$EndpointEntry;)V
5: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
6: goto 8
7: StackMap locals:
StackMap stack:
aload 0
lload 1
putfield sun.rmi.transport.DGCClient$EndpointEntry.renewTime:J
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 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 start local 1 0: getstatic sun.rmi.transport.DGCClient$EndpointEntry.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 2: aconst_null
astore 3
start local 3 3: StackMap locals: java.util.Set java.util.Set
StackMap stack:
aload 1
invokevirtual sun.rmi.transport.DGCClient$EndpointEntry$RefEntry$PhantomLiveRef.getRefEntry:()Lsun/rmi/transport/DGCClient$EndpointEntry$RefEntry;
astore 4
start local 4 4: aload 4
aload 1
invokevirtual sun.rmi.transport.DGCClient$EndpointEntry$RefEntry.removeInstanceFromRefSet:(Lsun/rmi/transport/DGCClient$EndpointEntry$RefEntry$PhantomLiveRef;)V
5: aload 4
invokevirtual sun.rmi.transport.DGCClient$EndpointEntry$RefEntry.isRefSetEmpty:()Z
ifeq 15
6: aload 4
invokevirtual sun.rmi.transport.DGCClient$EndpointEntry$RefEntry.hasDirtyFailed:()Z
ifeq 11
7: aload 2
ifnonnull 9
8: new java.util.HashSet
dup
iconst_5
invokespecial java.util.HashSet.<init>:(I)V
astore 2
9: StackMap locals: sun.rmi.transport.DGCClient$EndpointEntry$RefEntry
StackMap stack:
aload 2
aload 4
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
10: goto 14
11: StackMap locals:
StackMap stack:
aload 3
ifnonnull 13
12: new java.util.HashSet
dup
iconst_5
invokespecial java.util.HashSet.<init>:(I)V
astore 3
13: StackMap locals:
StackMap stack:
aload 3
aload 4
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
14: StackMap locals:
StackMap stack:
aload 0
aload 4
invokevirtual sun.rmi.transport.DGCClient$EndpointEntry.removeRefEntry:(Lsun/rmi/transport/DGCClient$EndpointEntry$RefEntry;)V
end local 4 15: StackMap locals:
StackMap stack:
aload 0
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: dup
astore 1
ifnonnull 3
17: aload 2
ifnull 23
18: aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.pendingCleans:Ljava/util/Set;
19: new sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest
dup
aload 2
invokestatic sun.rmi.transport.DGCClient$EndpointEntry.createObjIDArray:(Ljava/util/Set;)[Ljava/rmi/server/ObjID;
20: invokestatic sun.rmi.transport.DGCClient.getNextSequenceNum:()J
iconst_1
21: invokespecial sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest.<init>:([Ljava/rmi/server/ObjID;JZ)V
22: invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
23: StackMap locals:
StackMap stack:
aload 3
ifnull 29
24: aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.pendingCleans:Ljava/util/Set;
25: new sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest
dup
aload 3
invokestatic sun.rmi.transport.DGCClient$EndpointEntry.createObjIDArray:(Ljava/util/Set;)[Ljava/rmi/server/ObjID;
26: invokestatic sun.rmi.transport.DGCClient.getNextSequenceNum:()J
iconst_0
27: invokespecial sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest.<init>:([Ljava/rmi/server/ObjID;JZ)V
28: invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
29: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 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 0: getstatic sun.rmi.transport.DGCClient$EndpointEntry.$assertionsDisabled:Z
ifne 1
aload 0
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.pendingCleans:Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 1
start local 1 2: goto 12
3: StackMap locals: java.util.Iterator
StackMap stack:
aload 1
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest
astore 2
start local 2 4: aload 0
getfield sun.rmi.transport.DGCClient$EndpointEntry.dgc:Ljava/rmi/dgc/DGC;
aload 2
getfield sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest.objIDs:[Ljava/rmi/server/ObjID;
aload 2
getfield sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest.sequenceNum:J
getstatic sun.rmi.transport.DGCClient.vmid:Ljava/rmi/dgc/VMID;
5: aload 2
getfield sun.rmi.transport.DGCClient$EndpointEntry$CleanRequest.strong:Z
6: invokeinterface java.rmi.dgc.DGC.clean:([Ljava/rmi/server/ObjID;JLjava/rmi/dgc/VMID;Z)V
7: aload 1
invokeinterface java.util.Iterator.remove:()V
8: 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: aload 2
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: aload 1
invokeinterface java.util.Iterator.remove:()V
end local 2 12: StackMap locals:
StackMap stack:
aload 1
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
13: return
end local 1 end local 0 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 0: aload 0
invokeinterface java.util.Set.size:()I
anewarray java.rmi.server.ObjID
astore 1
start local 1 1: aload 0
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 2
start local 2 2: iconst_0
istore 3
start local 3 3: goto 6
4: StackMap locals: java.rmi.server.ObjID[] java.util.Iterator int
StackMap stack:
aload 1
iload 3
aload 2
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: iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
aload 1
arraylength
if_icmplt 4
end local 3 7: aload 1
areturn
end local 2 end local 1 end local 0 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