public class sun.misc.SoftCache extends java.util.AbstractMap implements java.util.Map
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.misc.SoftCache
  super_class: java.util.AbstractMap
{
  private java.util.Map hash;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE

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

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

  private void processQueue();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // sun.misc.SoftCache this
         0: .line 170
            goto 3
        start local 1 // sun.misc.SoftCache$ValueCell vc
         1: .line 171
      StackMap locals: sun.misc.SoftCache$ValueCell
      StackMap stack:
            aload 1 /* vc */
            invokevirtual sun.misc.SoftCache$ValueCell.isValid:()Z
            ifeq 2
            aload 0 /* this */
            getfield sun.misc.SoftCache.hash:Ljava/util/Map;
            aload 1 /* vc */
            getfield sun.misc.SoftCache$ValueCell.key:Ljava/lang/Object;
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
            goto 3
         2: .line 172
      StackMap locals:
      StackMap stack:
            getstatic sun.misc.SoftCache$ValueCell.dropped:I
            iconst_1
            isub
            putstatic sun.misc.SoftCache$ValueCell.dropped:I
        end local 1 // sun.misc.SoftCache$ValueCell vc
         3: .line 170
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.misc.SoftCache.queue:Ljava/lang/ref/ReferenceQueue;
            invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
            checkcast sun.misc.SoftCache$ValueCell
            dup
            astore 1 /* vc */
        start local 1 // sun.misc.SoftCache$ValueCell vc
         4: ifnonnull 1
         5: .line 174
            return
        end local 1 // sun.misc.SoftCache$ValueCell vc
        end local 0 // sun.misc.SoftCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/misc/SoftCache;
            1    3     1    vc  Lsun/misc/SoftCache$ValueCell;
            4    6     1    vc  Lsun/misc/SoftCache$ValueCell;

  public void <init>(int, float);
    descriptor: (IF)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.misc.SoftCache this
        start local 1 // int initialCapacity
        start local 2 // float loadFactor
         0: .line 191
            aload 0 /* this */
            invokespecial java.util.AbstractMap.<init>:()V
         1: .line 160
            aload 0 /* this */
            new java.lang.ref.ReferenceQueue
            dup
            invokespecial java.lang.ref.ReferenceQueue.<init>:()V
            putfield sun.misc.SoftCache.queue:Ljava/lang/ref/ReferenceQueue;
         2: .line 449
            aload 0 /* this */
            aconst_null
            putfield sun.misc.SoftCache.entrySet:Ljava/util/Set;
         3: .line 192
            aload 0 /* this */
            new java.util.HashMap
            dup
            iload 1 /* initialCapacity */
            fload 2 /* loadFactor */
            invokespecial java.util.HashMap.<init>:(IF)V
            putfield sun.misc.SoftCache.hash:Ljava/util/Map;
         4: .line 193
            return
        end local 2 // float loadFactor
        end local 1 // int initialCapacity
        end local 0 // sun.misc.SoftCache this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lsun/misc/SoftCache;
            0    5     1  initialCapacity  I
            0    5     2       loadFactor  F
    MethodParameters:
                 Name  Flags
      initialCapacity  
      loadFactor       

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.misc.SoftCache this
        start local 1 // int initialCapacity
         0: .line 204
            aload 0 /* this */
            invokespecial java.util.AbstractMap.<init>:()V
         1: .line 160
            aload 0 /* this */
            new java.lang.ref.ReferenceQueue
            dup
            invokespecial java.lang.ref.ReferenceQueue.<init>:()V
            putfield sun.misc.SoftCache.queue:Ljava/lang/ref/ReferenceQueue;
         2: .line 449
            aload 0 /* this */
            aconst_null
            putfield sun.misc.SoftCache.entrySet:Ljava/util/Set;
         3: .line 205
            aload 0 /* this */
            new java.util.HashMap
            dup
            iload 1 /* initialCapacity */
            invokespecial java.util.HashMap.<init>:(I)V
            putfield sun.misc.SoftCache.hash:Ljava/util/Map;
         4: .line 206
            return
        end local 1 // int initialCapacity
        end local 0 // sun.misc.SoftCache this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0             this  Lsun/misc/SoftCache;
            0    5     1  initialCapacity  I
    MethodParameters:
                 Name  Flags
      initialCapacity  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.misc.SoftCache this
         0: .line 212
            aload 0 /* this */
            invokespecial java.util.AbstractMap.<init>:()V
         1: .line 160
            aload 0 /* this */
            new java.lang.ref.ReferenceQueue
            dup
            invokespecial java.lang.ref.ReferenceQueue.<init>:()V
            putfield sun.misc.SoftCache.queue:Ljava/lang/ref/ReferenceQueue;
         2: .line 449
            aload 0 /* this */
            aconst_null
            putfield sun.misc.SoftCache.entrySet:Ljava/util/Set;
         3: .line 213
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.misc.SoftCache.hash:Ljava/util/Map;
         4: .line 214
            return
        end local 0 // sun.misc.SoftCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/misc/SoftCache;

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.misc.SoftCache this
         0: .line 224
            aload 0 /* this */
            invokevirtual sun.misc.SoftCache.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.size:()I
            ireturn
        end local 0 // sun.misc.SoftCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/misc/SoftCache;

  public boolean isEmpty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.misc.SoftCache this
         0: .line 231
            aload 0 /* this */
            invokevirtual sun.misc.SoftCache.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ireturn
        end local 0 // sun.misc.SoftCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/misc/SoftCache;

  public boolean containsKey(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.misc.SoftCache this
        start local 1 // java.lang.Object key
         0: .line 242
            aload 0 /* this */
            getfield sun.misc.SoftCache.hash:Ljava/util/Map;
            aload 1 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            iconst_0
            invokestatic sun.misc.SoftCache$ValueCell.strip:(Ljava/lang/Object;Z)Ljava/lang/Object;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 1 // java.lang.Object key
        end local 0 // sun.misc.SoftCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/misc/SoftCache;
            0    2     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   

  protected java.lang.Object fill(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // sun.misc.SoftCache this
        start local 1 // java.lang.Object key
         0: .line 266
            aconst_null
            areturn
        end local 1 // java.lang.Object key
        end local 0 // sun.misc.SoftCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/misc/SoftCache;
            0    1     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   

  public java.lang.Object get(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // sun.misc.SoftCache this
        start local 1 // java.lang.Object key
         0: .line 286
            aload 0 /* this */
            invokevirtual sun.misc.SoftCache.processQueue:()V
         1: .line 287
            aload 0 /* this */
            getfield sun.misc.SoftCache.hash:Ljava/util/Map;
            aload 1 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* v */
        start local 2 // java.lang.Object v
         2: .line 288
            aload 2 /* v */
            ifnonnull 7
         3: .line 289
            aload 0 /* this */
            aload 1 /* key */
            invokevirtual sun.misc.SoftCache.fill:(Ljava/lang/Object;)Ljava/lang/Object;
            astore 2 /* v */
         4: .line 290
            aload 2 /* v */
            ifnull 7
         5: .line 291
            aload 0 /* this */
            getfield sun.misc.SoftCache.hash:Ljava/util/Map;
            aload 1 /* key */
            aload 1 /* key */
            aload 2 /* v */
            aload 0 /* this */
            getfield sun.misc.SoftCache.queue:Ljava/lang/ref/ReferenceQueue;
            invokestatic sun.misc.SoftCache$ValueCell.create:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)Lsun/misc/SoftCache$ValueCell;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 292
            aload 2 /* v */
            areturn
         7: .line 295
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* v */
            iconst_0
            invokestatic sun.misc.SoftCache$ValueCell.strip:(Ljava/lang/Object;Z)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object v
        end local 1 // java.lang.Object key
        end local 0 // sun.misc.SoftCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lsun/misc/SoftCache;
            0    8     1   key  Ljava/lang/Object;
            2    8     2     v  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   

  public java.lang.Object put(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // sun.misc.SoftCache this
        start local 1 // java.lang.Object key
        start local 2 // java.lang.Object value
         0: .line 313
            aload 0 /* this */
            invokevirtual sun.misc.SoftCache.processQueue:()V
         1: .line 314
            aload 1 /* key */
            aload 2 /* value */
            aload 0 /* this */
            getfield sun.misc.SoftCache.queue:Ljava/lang/ref/ReferenceQueue;
            invokestatic sun.misc.SoftCache$ValueCell.create:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)Lsun/misc/SoftCache$ValueCell;
            astore 3 /* vc */
        start local 3 // sun.misc.SoftCache$ValueCell vc
         2: .line 315
            aload 0 /* this */
            getfield sun.misc.SoftCache.hash:Ljava/util/Map;
            aload 1 /* key */
            aload 3 /* vc */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            iconst_1
            invokestatic sun.misc.SoftCache$ValueCell.strip:(Ljava/lang/Object;Z)Ljava/lang/Object;
            areturn
        end local 3 // sun.misc.SoftCache$ValueCell vc
        end local 2 // java.lang.Object value
        end local 1 // java.lang.Object key
        end local 0 // sun.misc.SoftCache this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lsun/misc/SoftCache;
            0    3     1    key  Ljava/lang/Object;
            0    3     2  value  Ljava/lang/Object;
            2    3     3     vc  Lsun/misc/SoftCache$ValueCell;
    MethodParameters:
       Name  Flags
      key    
      value  

  public java.lang.Object remove(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.misc.SoftCache this
        start local 1 // java.lang.Object key
         0: .line 328
            aload 0 /* this */
            invokevirtual sun.misc.SoftCache.processQueue:()V
         1: .line 329
            aload 0 /* this */
            getfield sun.misc.SoftCache.hash:Ljava/util/Map;
            aload 1 /* key */
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            iconst_1
            invokestatic sun.misc.SoftCache$ValueCell.strip:(Ljava/lang/Object;Z)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object key
        end local 0 // sun.misc.SoftCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/misc/SoftCache;
            0    2     1   key  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      key   

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.misc.SoftCache this
         0: .line 336
            aload 0 /* this */
            invokevirtual sun.misc.SoftCache.processQueue:()V
         1: .line 337
            aload 0 /* this */
            getfield sun.misc.SoftCache.hash:Ljava/util/Map;
            invokeinterface java.util.Map.clear:()V
         2: .line 338
            return
        end local 0 // sun.misc.SoftCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/misc/SoftCache;

  private static boolean valEquals(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Object o1
        start local 1 // java.lang.Object o2
         0: .line 344
            aload 0 /* o1 */
            ifnonnull 2
            aload 1 /* o2 */
            ifnonnull 1
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack:
         1: iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: aload 0 /* o1 */
            aload 1 /* o2 */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // java.lang.Object o2
        end local 0 // java.lang.Object o1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0    o1  Ljava/lang/Object;
            0    4     1    o2  Ljava/lang/Object;
    MethodParameters:
      Name  Flags
      o1    
      o2    

  public java.util.Set entrySet();
    descriptor: ()Ljava/util/Set;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // sun.misc.SoftCache this
         0: .line 455
            aload 0 /* this */
            getfield sun.misc.SoftCache.entrySet:Ljava/util/Set;
            ifnonnull 1
            aload 0 /* this */
            new sun.misc.SoftCache$EntrySet
            dup
            aload 0 /* this */
            invokespecial sun.misc.SoftCache$EntrySet.<init>:(Lsun/misc/SoftCache;)V
            putfield sun.misc.SoftCache.entrySet:Ljava/util/Set;
         1: .line 456
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.misc.SoftCache.entrySet:Ljava/util/Set;
            areturn
        end local 0 // sun.misc.SoftCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/misc/SoftCache;
}
SourceFile: "SoftCache.java"
NestMembers:
  sun.misc.SoftCache$Entry  sun.misc.SoftCache$EntrySet  sun.misc.SoftCache$EntrySet$1  sun.misc.SoftCache$ValueCell
InnerClasses:
  private Entry = sun.misc.SoftCache$Entry of sun.misc.SoftCache
  private EntrySet = sun.misc.SoftCache$EntrySet of sun.misc.SoftCache
  private ValueCell = sun.misc.SoftCache$ValueCell of sun.misc.SoftCache