class sun.nio.ch.Util$1 extends jdk.internal.misc.TerminatingThreadLocal<sun.nio.ch.Util$BufferCache>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.nio.ch.Util$1
  super_class: jdk.internal.misc.TerminatingThreadLocal
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.nio.ch.Util$1 this
         0: .line 56
            aload 0 /* this */
            invokespecial jdk.internal.misc.TerminatingThreadLocal.<init>:()V
            return
        end local 0 // sun.nio.ch.Util$1 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/Util$1;

  protected sun.nio.ch.Util$BufferCache initialValue();
    descriptor: ()Lsun/nio/ch/Util$BufferCache;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.nio.ch.Util$1 this
         0: .line 59
            new sun.nio.ch.Util$BufferCache
            dup
            invokespecial sun.nio.ch.Util$BufferCache.<init>:()V
            areturn
        end local 0 // sun.nio.ch.Util$1 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/nio/ch/Util$1;

  protected void threadTerminated(sun.nio.ch.Util$BufferCache);
    descriptor: (Lsun/nio/ch/Util$BufferCache;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // sun.nio.ch.Util$1 this
        start local 1 // sun.nio.ch.Util$BufferCache cache
         0: .line 63
            goto 3
         1: .line 64
      StackMap locals:
      StackMap stack:
            aload 1 /* cache */
            invokevirtual sun.nio.ch.Util$BufferCache.removeFirst:()Ljava/nio/ByteBuffer;
            astore 2 /* bb */
        start local 2 // java.nio.ByteBuffer bb
         2: .line 65
            aload 2 /* bb */
            invokestatic sun.nio.ch.Util.free:(Ljava/nio/ByteBuffer;)V
        end local 2 // java.nio.ByteBuffer bb
         3: .line 63
      StackMap locals:
      StackMap stack:
            aload 1 /* cache */
            invokevirtual sun.nio.ch.Util$BufferCache.isEmpty:()Z
            ifeq 1
         4: .line 67
            return
        end local 1 // sun.nio.ch.Util$BufferCache cache
        end local 0 // sun.nio.ch.Util$1 this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lsun/nio/ch/Util$1;
            0    5     1  cache  Lsun/nio/ch/Util$BufferCache;
            2    3     2     bb  Ljava/nio/ByteBuffer;
    MethodParameters:
       Name  Flags
      cache  

  protected void threadTerminated(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast sun.nio.ch.Util$BufferCache
            invokevirtual sun.nio.ch.Util$1.threadTerminated:(Lsun/nio/ch/Util$BufferCache;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected java.lang.Object initialValue();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1044) ACC_PROTECTED, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual sun.nio.ch.Util$1.initialValue:()Lsun/nio/ch/Util$BufferCache;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljdk/internal/misc/TerminatingThreadLocal<Lsun/nio/ch/Util$BufferCache;>;
SourceFile: "Util.java"
EnclosingMethod: sun.nio.ch.Util
NestHost: sun.nio.ch.Util
InnerClasses:
  sun.nio.ch.Util$1
  private BufferCache = sun.nio.ch.Util$BufferCache of sun.nio.ch.Util