public abstract class sun.rmi.server.WeakClassHashMap<V>
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: sun.rmi.server.WeakClassHashMap
super_class: java.lang.Object
{
private java.util.Map<java.lang.Class<?>, sun.rmi.server.WeakClassHashMap$ValueCell<V>> internalMap;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/Class<*>;Lsun/rmi/server/WeakClassHashMap$ValueCell<TV;>;>;
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
putfield sun.rmi.server.WeakClassHashMap.internalMap:Ljava/util/Map;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/rmi/server/WeakClassHashMap<TV;>;
public V get(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.rmi.server.WeakClassHashMap.internalMap:Ljava/util/Map;
dup
astore 3
monitorenter
1: aload 0
getfield sun.rmi.server.WeakClassHashMap.internalMap:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast sun.rmi.server.WeakClassHashMap$ValueCell
astore 2
start local 2 2: aload 2
ifnonnull 5
3: new sun.rmi.server.WeakClassHashMap$ValueCell
dup
invokespecial sun.rmi.server.WeakClassHashMap$ValueCell.<init>:()V
astore 2
4: aload 0
getfield sun.rmi.server.WeakClassHashMap.internalMap:Ljava/util/Map;
aload 1
aload 2
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
5: StackMap locals: sun.rmi.server.WeakClassHashMap$ValueCell java.util.Map
StackMap stack:
aload 3
monitorexit
6: goto 9
end local 2 StackMap locals: sun.rmi.server.WeakClassHashMap java.lang.Class top java.util.Map
StackMap stack: java.lang.Throwable
7: aload 3
monitorexit
8: athrow
start local 2 9: StackMap locals: sun.rmi.server.WeakClassHashMap java.lang.Class sun.rmi.server.WeakClassHashMap$ValueCell
StackMap stack:
aload 2
dup
astore 3
monitorenter
10: aconst_null
astore 4
start local 4 11: aload 2
getfield sun.rmi.server.WeakClassHashMap$ValueCell.ref:Ljava/lang/ref/Reference;
ifnull 13
12: aload 2
getfield sun.rmi.server.WeakClassHashMap$ValueCell.ref:Ljava/lang/ref/Reference;
invokevirtual java.lang.ref.Reference.get:()Ljava/lang/Object;
astore 4
13: StackMap locals: sun.rmi.server.WeakClassHashMap$ValueCell java.lang.Object
StackMap stack:
aload 4
ifnonnull 16
14: aload 0
aload 1
invokevirtual sun.rmi.server.WeakClassHashMap.computeValue:(Ljava/lang/Class;)Ljava/lang/Object;
astore 4
15: aload 2
new java.lang.ref.SoftReference
dup
aload 4
invokespecial java.lang.ref.SoftReference.<init>:(Ljava/lang/Object;)V
putfield sun.rmi.server.WeakClassHashMap$ValueCell.ref:Ljava/lang/ref/Reference;
16: StackMap locals:
StackMap stack:
aload 4
aload 3
monitorexit
17: areturn
end local 4 18: StackMap locals: sun.rmi.server.WeakClassHashMap java.lang.Class sun.rmi.server.WeakClassHashMap$ValueCell sun.rmi.server.WeakClassHashMap$ValueCell
StackMap stack: java.lang.Throwable
aload 3
monitorexit
19: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lsun/rmi/server/WeakClassHashMap<TV;>;
0 20 1 remoteClass Ljava/lang/Class<*>;
2 7 2 valueCell Lsun/rmi/server/WeakClassHashMap$ValueCell<TV;>;
9 20 2 valueCell Lsun/rmi/server/WeakClassHashMap$ValueCell<TV;>;
11 18 4 value TV;
Exception table:
from to target type
1 6 7 any
7 8 7 any
10 17 18 any
18 19 18 any
Signature: (Ljava/lang/Class<*>;)TV;
MethodParameters:
Name Flags
remoteClass
protected abstract V computeValue(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Signature: (Ljava/lang/Class<*>;)TV;
MethodParameters:
Name Flags
remoteClass
}
Signature: <V:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "WeakClassHashMap.java"
NestMembers:
sun.rmi.server.WeakClassHashMap$ValueCell
InnerClasses:
private ValueCell = sun.rmi.server.WeakClassHashMap$ValueCell of sun.rmi.server.WeakClassHashMap