public final class sun.rmi.transport.Target
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: sun.rmi.transport.Target
super_class: java.lang.Object
{
private final java.rmi.server.ObjID id;
descriptor: Ljava/rmi/server/ObjID;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean permanent;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final sun.rmi.transport.WeakRef weakImpl;
descriptor: Lsun/rmi/transport/WeakRef;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile sun.rmi.server.Dispatcher disp;
descriptor: Lsun/rmi/server/Dispatcher;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final java.rmi.Remote stub;
descriptor: Ljava/rmi/Remote;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Vector<java.rmi.dgc.VMID> refSet;
descriptor: Ljava/util/Vector;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Vector<Ljava/rmi/dgc/VMID;>;
private final java.util.Hashtable<java.rmi.dgc.VMID, sun.rmi.transport.SequenceEntry> sequenceTable;
descriptor: Ljava/util/Hashtable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Hashtable<Ljava/rmi/dgc/VMID;Lsun/rmi/transport/SequenceEntry;>;
private final java.security.AccessControlContext acc;
descriptor: Ljava/security/AccessControlContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.ClassLoader ccl;
descriptor: Ljava/lang/ClassLoader;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int callCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean removed;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private volatile sun.rmi.transport.Transport exportedTransport;
descriptor: Lsun/rmi/transport/Transport;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static int nextThreadNum;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: iconst_0
putstatic sun.rmi.transport.Target.nextThreadNum:I
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.rmi.Remote, sun.rmi.server.Dispatcher, java.rmi.Remote, java.rmi.server.ObjID, boolean);
descriptor: (Ljava/rmi/Remote;Lsun/rmi/server/Dispatcher;Ljava/rmi/Remote;Ljava/rmi/server/ObjID;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.Vector
dup
invokespecial java.util.Vector.<init>:()V
putfield sun.rmi.transport.Target.refSet:Ljava/util/Vector;
2: aload 0
3: new java.util.Hashtable
dup
iconst_5
invokespecial java.util.Hashtable.<init>:(I)V
putfield sun.rmi.transport.Target.sequenceTable:Ljava/util/Hashtable;
4: aload 0
iconst_0
putfield sun.rmi.transport.Target.callCount:I
5: aload 0
iconst_0
putfield sun.rmi.transport.Target.removed:Z
6: aload 0
aconst_null
putfield sun.rmi.transport.Target.exportedTransport:Lsun/rmi/transport/Transport;
7: aload 0
new sun.rmi.transport.WeakRef
dup
aload 1
getstatic sun.rmi.transport.ObjectTable.reapQueue:Ljava/lang/ref/ReferenceQueue;
invokespecial sun.rmi.transport.WeakRef.<init>:(Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V
putfield sun.rmi.transport.Target.weakImpl:Lsun/rmi/transport/WeakRef;
8: aload 0
aload 2
putfield sun.rmi.transport.Target.disp:Lsun/rmi/server/Dispatcher;
9: aload 0
aload 3
putfield sun.rmi.transport.Target.stub:Ljava/rmi/Remote;
10: aload 0
aload 4
putfield sun.rmi.transport.Target.id:Ljava/rmi/server/ObjID;
11: aload 0
invokestatic java.security.AccessController.getContext:()Ljava/security/AccessControlContext;
putfield sun.rmi.transport.Target.acc:Ljava/security/AccessControlContext;
12: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getContextClassLoader:()Ljava/lang/ClassLoader;
13: astore 6
start local 6 14: aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
astore 7
start local 7 15: aload 6
aload 7
invokestatic sun.rmi.transport.Target.checkLoaderAncestry:(Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;)Z
ifeq 18
16: aload 0
aload 6
putfield sun.rmi.transport.Target.ccl:Ljava/lang/ClassLoader;
17: goto 19
18: StackMap locals: sun.rmi.transport.Target java.rmi.Remote sun.rmi.server.Dispatcher java.rmi.Remote java.rmi.server.ObjID int java.lang.ClassLoader java.lang.ClassLoader
StackMap stack:
aload 0
aload 7
putfield sun.rmi.transport.Target.ccl:Ljava/lang/ClassLoader;
19: StackMap locals:
StackMap stack:
aload 0
iload 5
putfield sun.rmi.transport.Target.permanent:Z
20: iload 5
ifeq 22
21: aload 0
invokevirtual sun.rmi.transport.Target.pinImpl:()V
22: StackMap locals:
StackMap stack:
return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lsun/rmi/transport/Target;
0 23 1 impl Ljava/rmi/Remote;
0 23 2 disp Lsun/rmi/server/Dispatcher;
0 23 3 stub Ljava/rmi/Remote;
0 23 4 id Ljava/rmi/server/ObjID;
0 23 5 permanent Z
14 23 6 threadContextLoader Ljava/lang/ClassLoader;
15 23 7 serverLoader Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
impl
disp
stub
id
permanent
private static boolean checkLoaderAncestry(java.lang.ClassLoader, java.lang.ClassLoader);
descriptor: (Ljava/lang/ClassLoader;Ljava/lang/ClassLoader;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 0
ifnonnull 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
aload 0
astore 2
start local 2 5: goto 9
6: StackMap locals: java.lang.ClassLoader
StackMap stack:
aload 2
aload 1
if_acmpne 8
7: iconst_1
ireturn
8: StackMap locals:
StackMap stack:
aload 2
invokevirtual java.lang.ClassLoader.getParent:()Ljava/lang/ClassLoader;
astore 2
9: StackMap locals:
StackMap stack:
aload 2
ifnonnull 6
end local 2 10: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 child Ljava/lang/ClassLoader;
0 11 1 ancestor Ljava/lang/ClassLoader;
5 10 2 parent Ljava/lang/ClassLoader;
MethodParameters:
Name Flags
child
ancestor
public java.rmi.Remote getStub();
descriptor: ()Ljava/rmi/Remote;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.rmi.transport.Target.stub:Ljava/rmi/Remote;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/rmi/transport/Target;
sun.rmi.transport.ObjectEndpoint getObjectEndpoint();
descriptor: ()Lsun/rmi/transport/ObjectEndpoint;
flags: (0x0000)
Code:
stack=4, locals=1, args_size=1
start local 0 0: new sun.rmi.transport.ObjectEndpoint
dup
aload 0
getfield sun.rmi.transport.Target.id:Ljava/rmi/server/ObjID;
aload 0
getfield sun.rmi.transport.Target.exportedTransport:Lsun/rmi/transport/Transport;
invokespecial sun.rmi.transport.ObjectEndpoint.<init>:(Ljava/rmi/server/ObjID;Lsun/rmi/transport/Transport;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/rmi/transport/Target;
sun.rmi.transport.WeakRef getWeakImpl();
descriptor: ()Lsun/rmi/transport/WeakRef;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.rmi.transport.Target.weakImpl:Lsun/rmi/transport/WeakRef;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/rmi/transport/Target;
sun.rmi.server.Dispatcher getDispatcher();
descriptor: ()Lsun/rmi/server/Dispatcher;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.rmi.transport.Target.disp:Lsun/rmi/server/Dispatcher;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/rmi/transport/Target;
java.security.AccessControlContext getAccessControlContext();
descriptor: ()Ljava/security/AccessControlContext;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.rmi.transport.Target.acc:Ljava/security/AccessControlContext;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/rmi/transport/Target;
java.lang.ClassLoader getContextClassLoader();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.rmi.transport.Target.ccl:Ljava/lang/ClassLoader;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/rmi/transport/Target;
java.rmi.Remote getImpl();
descriptor: ()Ljava/rmi/Remote;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.rmi.transport.Target.weakImpl:Lsun/rmi/transport/WeakRef;
invokevirtual sun.rmi.transport.WeakRef.get:()Ljava/lang/Object;
checkcast java.rmi.Remote
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/rmi/transport/Target;
boolean isPermanent();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.rmi.transport.Target.permanent:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/rmi/transport/Target;
synchronized void pinImpl();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.rmi.transport.Target.weakImpl:Lsun/rmi/transport/WeakRef;
invokevirtual sun.rmi.transport.WeakRef.pin:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/rmi/transport/Target;
synchronized void unpinImpl();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.rmi.transport.Target.permanent:Z
ifne 2
aload 0
getfield sun.rmi.transport.Target.refSet:Ljava/util/Vector;
invokevirtual java.util.Vector.isEmpty:()Z
ifeq 2
1: aload 0
getfield sun.rmi.transport.Target.weakImpl:Lsun/rmi/transport/WeakRef;
invokevirtual sun.rmi.transport.WeakRef.unpin:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/rmi/transport/Target;
void setExportedTransport(sun.rmi.transport.Transport);
descriptor: (Lsun/rmi/transport/Transport;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.rmi.transport.Target.exportedTransport:Lsun/rmi/transport/Transport;
ifnonnull 2
1: aload 0
aload 1
putfield sun.rmi.transport.Target.exportedTransport:Lsun/rmi/transport/Transport;
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/rmi/transport/Target;
0 3 1 exportedTransport Lsun/rmi/transport/Transport;
MethodParameters:
Name Flags
exportedTransport
synchronized void referenced(long, java.rmi.dgc.VMID);
descriptor: (JLjava/rmi/dgc/VMID;)V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield sun.rmi.transport.Target.sequenceTable:Ljava/util/Hashtable;
aload 3
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.rmi.transport.SequenceEntry
astore 4
start local 4 1: aload 4
ifnonnull 4
2: aload 0
getfield sun.rmi.transport.Target.sequenceTable:Ljava/util/Hashtable;
aload 3
new sun.rmi.transport.SequenceEntry
dup
lload 1
invokespecial sun.rmi.transport.SequenceEntry.<init>:(J)V
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: goto 8
StackMap locals: sun.rmi.transport.SequenceEntry
StackMap stack:
4: aload 4
getfield sun.rmi.transport.SequenceEntry.sequenceNum:J
lload 1
lcmp
ifge 7
5: aload 4
lload 1
invokevirtual sun.rmi.transport.SequenceEntry.update:(J)V
6: goto 8
7: StackMap locals:
StackMap stack:
return
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.rmi.transport.Target.refSet:Ljava/util/Vector;
aload 3
invokevirtual java.util.Vector.contains:(Ljava/lang/Object;)Z
ifne 16
9: aload 0
invokevirtual sun.rmi.transport.Target.pinImpl:()V
10: aload 0
invokevirtual sun.rmi.transport.Target.getImpl:()Ljava/rmi/Remote;
ifnonnull 12
11: return
12: StackMap locals:
StackMap stack:
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 14
13: 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 to dirty set: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
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
14: StackMap locals:
StackMap stack:
aload 0
getfield sun.rmi.transport.Target.refSet:Ljava/util/Vector;
aload 3
invokevirtual java.util.Vector.addElement:(Ljava/lang/Object;)V
15: invokestatic sun.rmi.transport.DGCImpl.getDGCImpl:()Lsun/rmi/transport/DGCImpl;
aload 3
aload 0
invokevirtual sun.rmi.transport.DGCImpl.registerTarget:(Ljava/rmi/dgc/VMID;Lsun/rmi/transport/Target;)V
16: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lsun/rmi/transport/Target;
0 17 1 sequenceNum J
0 17 3 vmid Ljava/rmi/dgc/VMID;
1 17 4 entry Lsun/rmi/transport/SequenceEntry;
MethodParameters:
Name Flags
sequenceNum
vmid
synchronized void unreferenced(long, java.rmi.dgc.VMID, boolean);
descriptor: (JLjava/rmi/dgc/VMID;Z)V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 3 start local 4 0: aload 0
getfield sun.rmi.transport.Target.sequenceTable:Ljava/util/Hashtable;
aload 3
invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.rmi.transport.SequenceEntry
astore 5
start local 5 1: aload 5
ifnull 2
aload 5
getfield sun.rmi.transport.SequenceEntry.sequenceNum:J
lload 1
lcmp
ifle 3
2: StackMap locals: sun.rmi.transport.SequenceEntry
StackMap stack:
return
3: StackMap locals:
StackMap stack:
iload 4
ifeq 6
4: aload 5
lload 1
invokevirtual sun.rmi.transport.SequenceEntry.retain:(J)V
5: goto 8
StackMap locals:
StackMap stack:
6: aload 5
getfield sun.rmi.transport.SequenceEntry.keep:Z
ifne 8
7: aload 0
getfield sun.rmi.transport.Target.sequenceTable:Ljava/util/Hashtable;
aload 3
invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
8: StackMap locals:
StackMap stack:
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 10
9: 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 from dirty set: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
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
10: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual sun.rmi.transport.Target.refSetRemove:(Ljava/rmi/dgc/VMID;)V
11: return
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/rmi/transport/Target;
0 12 1 sequenceNum J
0 12 3 vmid Ljava/rmi/dgc/VMID;
0 12 4 strong Z
1 12 5 entry Lsun/rmi/transport/SequenceEntry;
MethodParameters:
Name Flags
sequenceNum
vmid
strong
private synchronized void refSetRemove(java.rmi.dgc.VMID);
descriptor: (Ljava/rmi/dgc/VMID;)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=7, locals=4, args_size=2
start local 0 start local 1 0: invokestatic sun.rmi.transport.DGCImpl.getDGCImpl:()Lsun/rmi/transport/DGCImpl;
aload 1
aload 0
invokevirtual sun.rmi.transport.DGCImpl.unregisterTarget:(Ljava/rmi/dgc/VMID;Lsun/rmi/transport/Target;)V
1: aload 0
getfield sun.rmi.transport.Target.refSet:Ljava/util/Vector;
aload 1
invokevirtual java.util.Vector.removeElement:(Ljava/lang/Object;)Z
ifeq 15
aload 0
getfield sun.rmi.transport.Target.refSet:Ljava/util/Vector;
invokevirtual java.util.Vector.isEmpty:()Z
ifeq 15
2: 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 6
3: getstatic sun.rmi.transport.DGCImpl.dgcLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.VERBOSE:Ljava/util/logging/Level;
4: new java.lang.StringBuilder
dup
ldc "reference set is empty: target = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.rmi.transport.Target.getImpl:()Ljava/rmi/Remote;
astore 2
start local 2 7: aload 2
instanceof java.rmi.server.Unreferenced
ifeq 14
8: aload 2
checkcast java.rmi.server.Unreferenced
astore 3
start local 3 9: new sun.rmi.runtime.NewThreadAction
dup
aload 0
aload 3
invokedynamic run(Lsun/rmi/transport/Target;Ljava/rmi/server/Unreferenced;)Ljava/lang/Runnable;
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:
()V
sun/rmi/transport/Target.lambda$0(Ljava/rmi/server/Unreferenced;)V (7)
()V
10: new java.lang.StringBuilder
dup
ldc "Unreferenced-"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
getstatic sun.rmi.transport.Target.nextThreadNum:I
dup
iconst_1
iadd
putstatic sun.rmi.transport.Target.nextThreadNum:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
iconst_0
iconst_1
11: invokespecial sun.rmi.runtime.NewThreadAction.<init>:(Ljava/lang/Runnable;Ljava/lang/String;ZZ)V
12: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Thread
13: invokevirtual java.lang.Thread.start:()V
end local 3 14: StackMap locals: java.rmi.Remote
StackMap stack:
aload 0
invokevirtual sun.rmi.transport.Target.unpinImpl:()V
end local 2 15: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lsun/rmi/transport/Target;
0 16 1 vmid Ljava/rmi/dgc/VMID;
7 15 2 obj Ljava/rmi/Remote;
9 14 3 unrefObj Ljava/rmi/server/Unreferenced;
MethodParameters:
Name Flags
vmid
synchronized boolean unexport(boolean);
descriptor: (Z)Z
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: iload 1
ifne 1
aload 0
getfield sun.rmi.transport.Target.callCount:I
ifeq 1
aload 0
getfield sun.rmi.transport.Target.disp:Lsun/rmi/server/Dispatcher;
ifnonnull 10
1: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield sun.rmi.transport.Target.disp:Lsun/rmi/server/Dispatcher;
2: aload 0
invokevirtual sun.rmi.transport.Target.unpinImpl:()V
3: invokestatic sun.rmi.transport.DGCImpl.getDGCImpl:()Lsun/rmi/transport/DGCImpl;
astore 2
start local 2 4: aload 0
getfield sun.rmi.transport.Target.refSet:Ljava/util/Vector;
invokevirtual java.util.Vector.elements:()Ljava/util/Enumeration;
astore 3
start local 3 5: goto 8
6: StackMap locals: sun.rmi.transport.DGCImpl java.util.Enumeration
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
checkcast java.rmi.dgc.VMID
astore 4
start local 4 7: aload 2
aload 4
aload 0
invokevirtual sun.rmi.transport.DGCImpl.unregisterTarget:(Ljava/rmi/dgc/VMID;Lsun/rmi/transport/Target;)V
end local 4 8: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Enumeration.hasMoreElements:()Z
ifne 6
9: iconst_1
ireturn
end local 3 end local 2 10: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/rmi/transport/Target;
0 11 1 force Z
4 10 2 dgc Lsun/rmi/transport/DGCImpl;
5 10 3 enum_ Ljava/util/Enumeration<Ljava/rmi/dgc/VMID;>;
7 8 4 vmid Ljava/rmi/dgc/VMID;
MethodParameters:
Name Flags
force
synchronized void markRemoved();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.rmi.transport.Target.removed:Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield sun.rmi.transport.Target.removed:Z
2: aload 0
getfield sun.rmi.transport.Target.permanent:Z
ifne 4
aload 0
getfield sun.rmi.transport.Target.callCount:I
ifne 4
3: invokestatic sun.rmi.transport.ObjectTable.decrementKeepAliveCount:()V
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.rmi.transport.Target.exportedTransport:Lsun/rmi/transport/Transport;
ifnull 6
5: aload 0
getfield sun.rmi.transport.Target.exportedTransport:Lsun/rmi/transport/Transport;
invokevirtual sun.rmi.transport.Transport.targetUnexported:()V
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/rmi/transport/Target;
synchronized void incrementCallCount();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.rmi.transport.Target.disp:Lsun/rmi/server/Dispatcher;
ifnull 3
1: aload 0
dup
getfield sun.rmi.transport.Target.callCount:I
iconst_1
iadd
putfield sun.rmi.transport.Target.callCount:I
2: goto 4
3: StackMap locals:
StackMap stack:
new java.rmi.NoSuchObjectException
dup
ldc "object not accepting new calls"
invokespecial java.rmi.NoSuchObjectException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/rmi/transport/Target;
Exceptions:
throws java.rmi.NoSuchObjectException
synchronized void decrementCallCount();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield sun.rmi.transport.Target.callCount:I
iconst_1
isub
dup_x1
putfield sun.rmi.transport.Target.callCount:I
ifge 2
1: new java.lang.Error
dup
ldc "internal error: call count less than zero"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.rmi.transport.Target.permanent:Z
ifne 4
aload 0
getfield sun.rmi.transport.Target.removed:Z
ifeq 4
aload 0
getfield sun.rmi.transport.Target.callCount:I
ifne 4
3: invokestatic sun.rmi.transport.ObjectTable.decrementKeepAliveCount:()V
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/rmi/transport/Target;
boolean isEmpty();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield sun.rmi.transport.Target.refSet:Ljava/util/Vector;
invokevirtual java.util.Vector.isEmpty:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/rmi/transport/Target;
public synchronized void vmidDead(java.rmi.dgc.VMID);
descriptor: (Ljava/rmi/dgc/VMID;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: getstatic sun.rmi.transport.DGCImpl.dgcLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
invokevirtual sun.rmi.runtime.Log.isLoggable:(Ljava/util/logging/Level;)Z
ifeq 4
1: getstatic sun.rmi.transport.DGCImpl.dgcLog:Lsun/rmi/runtime/Log;
getstatic sun.rmi.runtime.Log.BRIEF:Ljava/util/logging/Level;
new java.lang.StringBuilder
dup
ldc "removing endpoint "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " from reference set"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokevirtual sun.rmi.runtime.Log.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.rmi.transport.Target.sequenceTable:Ljava/util/Hashtable;
aload 1
invokevirtual java.util.Hashtable.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
5: aload 0
aload 1
invokevirtual sun.rmi.transport.Target.refSetRemove:(Ljava/rmi/dgc/VMID;)V
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/rmi/transport/Target;
0 7 1 vmid Ljava/rmi/dgc/VMID;
MethodParameters:
Name Flags
vmid
private void lambda$0(java.rmi.server.Unreferenced);
descriptor: (Ljava/rmi/server/Unreferenced;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 0: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
aload 0
getfield sun.rmi.transport.Target.ccl:Ljava/lang/ClassLoader;
invokevirtual java.lang.Thread.setContextClassLoader:(Ljava/lang/ClassLoader;)V
1: aload 1
invokedynamic run(Ljava/rmi/server/Unreferenced;)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/Target.lambda$1(Ljava/rmi/server/Unreferenced;)Ljava/lang/Void; (6)
()Ljava/lang/Void;
2: aload 0
getfield sun.rmi.transport.Target.acc:Ljava/security/AccessControlContext;
3: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;
pop
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/rmi/transport/Target;
private static java.lang.Void lambda$1(java.rmi.server.Unreferenced);
descriptor: (Ljava/rmi/server/Unreferenced;)Ljava/lang/Void;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokeinterface java.rmi.server.Unreferenced.unreferenced:()V
1: aconst_null
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "Target.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles