class jdk.internal.net.http.common.SSLFlowDelegate$Writer extends jdk.internal.net.http.common.SubscriberWrapper
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.internal.net.http.common.SSLFlowDelegate$Writer
  super_class: jdk.internal.net.http.common.SubscriberWrapper
{
  final jdk.internal.net.http.common.SequentialScheduler scheduler;
    descriptor: Ljdk/internal/net/http/common/SequentialScheduler;
    flags: (0x0010) ACC_FINAL

  final java.util.List<java.nio.ByteBuffer> writeList;
    descriptor: Ljava/util/List;
    flags: (0x0010) ACC_FINAL
    Signature: Ljava/util/List<Ljava/nio/ByteBuffer;>;

  final jdk.internal.net.http.common.Logger debugw;
    descriptor: Ljdk/internal/net/http/common/Logger;
    flags: (0x0010) ACC_FINAL

  volatile boolean completing;
    descriptor: Z
    flags: (0x0040) ACC_VOLATILE

  boolean completed;
    descriptor: Z
    flags: (0x0000) 

  volatile java.nio.ByteBuffer writeBuffer;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0040) ACC_VOLATILE

  private volatile javax.net.ssl.SSLEngineResult$Status lastWrappedStatus;
    descriptor: Ljavax/net/ssl/SSLEngineResult$Status;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  final jdk.internal.net.http.common.SSLFlowDelegate this$0;
    descriptor: Ljdk/internal/net/http/common/SSLFlowDelegate;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 636
            ldc Ljdk/internal/net/http/common/SSLFlowDelegate;
            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 jdk.internal.net.http.common.SSLFlowDelegate$Writer.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(jdk.internal.net.http.common.SSLFlowDelegate);
    descriptor: (Ljdk/internal/net/http/common/SSLFlowDelegate;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
         0: .line 649
            aload 0 /* this */
            aload 1
            putfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
         1: .line 650
            aload 0 /* this */
            invokespecial jdk.internal.net.http.common.SubscriberWrapper.<init>:()V
         2: .line 641
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic get(Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;)Ljava/util/function/Supplier;
              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;
                  jdk/internal/net/http/common/SSLFlowDelegate$Writer.dbgString()Ljava/lang/String; (5)
                  ()Ljava/lang/String;
            getstatic jdk.internal.net.http.common.Utils.DEBUG:Z
            invokestatic jdk.internal.net.http.common.Utils.getDebugLogger:(Ljava/util/function/Supplier;Z)Ljdk/internal/net/http/common/Logger;
            putfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
         3: .line 651
            aload 0 /* this */
            new java.util.LinkedList
            dup
            invokespecial java.util.LinkedList.<init>:()V
            invokestatic java.util.Collections.synchronizedList:(Ljava/util/List;)Ljava/util/List;
            putfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
         4: .line 652
            aload 0 /* this */
            new jdk.internal.net.http.common.SequentialScheduler
            dup
            new jdk.internal.net.http.common.SSLFlowDelegate$Writer$WriterDownstreamPusher
            dup
            aload 0 /* this */
            invokespecial jdk.internal.net.http.common.SSLFlowDelegate$Writer$WriterDownstreamPusher.<init>:(Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;)V
            invokespecial jdk.internal.net.http.common.SequentialScheduler.<init>:(Ljdk/internal/net/http/common/SequentialScheduler$RestartableTask;)V
            putfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.scheduler:Ljdk/internal/net/http/common/SequentialScheduler;
         5: .line 653
            return
        end local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;
    MethodParameters:
        Name  Flags
      this$0  final

  protected void incoming(java.util.List<java.nio.ByteBuffer>, );
    descriptor: (Ljava/util/List;Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
        start local 1 // java.util.List buffers
        start local 2 // boolean complete
         0: .line 657
            getstatic jdk.internal.net.http.common.SSLFlowDelegate$Writer.$assertionsDisabled:Z
            ifne 1
            iload 2 /* complete */
            ifeq 1
            aload 1 /* buffers */
            getstatic jdk.internal.net.http.common.Utils.EMPTY_BB_LIST:Ljava/util/List;
            if_acmpeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 658
      StackMap locals:
      StackMap stack:
            getstatic jdk.internal.net.http.common.SSLFlowDelegate$Writer.$assertionsDisabled:Z
            ifne 2
            aload 1 /* buffers */
            getstatic jdk.internal.net.http.common.Utils.EMPTY_BB_LIST:Ljava/util/List;
            if_acmpeq 2
            iload 2 /* complete */
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 659
      StackMap locals:
      StackMap stack:
            iload 2 /* complete */
            ifeq 7
         3: .line 660
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 4
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            ldc "adding SENTINEL"
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
         4: .line 661
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.completing:Z
         5: .line 662
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            getstatic jdk.internal.net.http.common.SSLFlowDelegate.SENTINEL:Ljava/nio/ByteBuffer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 663
            goto 8
         7: .line 664
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            aload 1 /* buffers */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         8: .line 666
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 13
         9: .line 667
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            new java.lang.StringBuilder
            dup
            ldc "added "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* buffers */
            invokeinterface java.util.List.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        10: .line 668
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* buffers */
            invokestatic jdk.internal.net.http.common.Utils.remaining:(Ljava/util/List;)J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
        11: .line 669
            ldc " bytes) to the writeList"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 667
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
        13: .line 670
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.scheduler:Ljdk/internal/net/http/common/SequentialScheduler;
            invokevirtual jdk.internal.net.http.common.SequentialScheduler.runOrSchedule:()V
        14: .line 671
            return
        end local 2 // boolean complete
        end local 1 // java.util.List buffers
        end local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;
            0   15     1   buffers  Ljava/util/List<Ljava/nio/ByteBuffer;>;
            0   15     2  complete  Z
    Signature: (Ljava/util/List<Ljava/nio/ByteBuffer;>;Z)V
    MethodParameters:
          Name  Flags
      buffers   
      complete  

  public final java.lang.String dbgString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
         0: .line 674
            new java.lang.StringBuilder
            dup
            ldc "SSL Writer("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
            getfield jdk.internal.net.http.common.SSLFlowDelegate.tubeName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;

  protected void onSubscribe();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
         0: .line 678
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 1
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            ldc "onSubscribe initiating handshaking"
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
         1: .line 679
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic jdk.internal.net.http.common.SSLFlowDelegate.HS_TRIGGER:Ljava/nio/ByteBuffer;
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.addData:(Ljava/nio/ByteBuffer;)V
         2: .line 680
            return
        end local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;

  void schedule();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
         0: .line 683
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.scheduler:Ljdk/internal/net/http/common/SequentialScheduler;
            invokevirtual jdk.internal.net.http.common.SequentialScheduler.runOrSchedule:()V
         1: .line 684
            return
        end local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;

  void stop();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
         0: .line 687
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 1
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            ldc "stop"
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
         1: .line 688
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.scheduler:Ljdk/internal/net/http/common/SequentialScheduler;
            invokevirtual jdk.internal.net.http.common.SequentialScheduler.stop:()V
         2: .line 689
            return
        end local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;

  public boolean closing();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
         0: .line 693
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.closeNotifyReceived:()Z
            ireturn
        end local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;

  private boolean isCompleting();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
         0: .line 697
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.completing:Z
            ireturn
        end local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;

  protected long upstreamWindowUpdate(long, long);
    descriptor: (JJ)J
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
        start local 1 // long currentWindow
        start local 3 // long downstreamQsize
         0: .line 702
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            bipush 10
            if_icmple 2
         1: .line 703
            lconst_0
            lreturn
         2: .line 705
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* currentWindow */
            lload 3 /* downstreamQsize */
            invokespecial jdk.internal.net.http.common.SubscriberWrapper.upstreamWindowUpdate:(JJ)J
            lreturn
        end local 3 // long downstreamQsize
        end local 1 // long currentWindow
        end local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;
            0    3     1    currentWindow  J
            0    3     3  downstreamQsize  J
    MethodParameters:
                 Name  Flags
      currentWindow    
      downstreamQsize  

  private boolean hsTriggered();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
         0: .line 709
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            dup
            astore 1
            monitorenter
         1: .line 710
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate$Writer java.util.List top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.nio.ByteBuffer
            astore 2 /* b */
        start local 2 // java.nio.ByteBuffer b
         3: .line 711
            aload 2 /* b */
            getstatic jdk.internal.net.http.common.SSLFlowDelegate.HS_TRIGGER:Ljava/nio/ByteBuffer;
            if_acmpne 6
         4: .line 712
            aload 1
            monitorexit
         5: iconst_1
            ireturn
        end local 2 // java.nio.ByteBuffer b
         6: .line 710
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 713
            aload 1
            monitorexit
         8: iconst_0
            ireturn
         9: .line 709
      StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate$Writer java.util.List
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        10: athrow
        end local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;
            3    6     2     b  Ljava/nio/ByteBuffer;
      Exception table:
        from    to  target  type
           1     5       9  any
           6     8       9  any
           9    10       9  any

  void triggerWrite();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
         0: .line 718
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            dup
            astore 1
            monitorenter
         1: .line 719
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 3
         2: .line 720
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            getstatic jdk.internal.net.http.common.SSLFlowDelegate.HS_TRIGGER:Ljava/nio/ByteBuffer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         3: .line 718
      StackMap locals: java.util.List
      StackMap stack:
            aload 1
            monitorexit
         4: goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: aload 1
            monitorexit
         6: athrow
         7: .line 723
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.scheduler:Ljdk/internal/net/http/common/SequentialScheduler;
            invokevirtual jdk.internal.net.http.common.SequentialScheduler.runOrSchedule:()V
         8: .line 724
            return
        end local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any

  private void processData();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=1
        start local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
         0: .line 727
            aload 0 /* this */
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.isCompleting:()Z
            istore 1 /* completing */
        start local 1 // boolean completing
         1: .line 730
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 35
         2: .line 731
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            new java.lang.StringBuilder
            dup
            ldc "processData, writeList remaining:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         3: .line 732
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            invokestatic jdk.internal.net.http.common.Utils.remaining:(Ljava/util/List;)J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc ", hsTriggered:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 733
            aload 0 /* this */
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.hsTriggered:()Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc ", needWrap:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.needWrap:()Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 731
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
         6: .line 735
            goto 35
         7: .line 736
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            getstatic jdk.internal.net.http.common.Utils.EMPTY_BB_ARRAY:[Ljava/nio/ByteBuffer;
            invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast java.nio.ByteBuffer[]
            astore 2 /* outbufs */
        start local 2 // java.nio.ByteBuffer[] outbufs
         8: .line 737
            aload 0 /* this */
            aload 2 /* outbufs */
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.wrapBuffers:([Ljava/nio/ByteBuffer;)Ljdk/internal/net/http/common/SSLFlowDelegate$EngineResult;
            astore 3 /* result */
        start local 3 // jdk.internal.net.http.common.SSLFlowDelegate$EngineResult result
         9: .line 738
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 11
        10: .line 739
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            ldc "wrapBuffer returned %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* result */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.result:Ljavax/net/ssl/SSLEngineResult;
            aastore
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
        11: .line 741
      StackMap locals: java.nio.ByteBuffer[] jdk.internal.net.http.common.SSLFlowDelegate$EngineResult
      StackMap stack:
            aload 3 /* result */
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.status:()Ljavax/net/ssl/SSLEngineResult$Status;
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            if_acmpne 21
        12: .line 742
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.upstreamCompleted:Z
            ifne 16
        13: .line 743
            aload 0 /* this */
            iconst_1
            putfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.upstreamCompleted:Z
        14: .line 744
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.upstreamSubscription:Ljava/util/concurrent/Flow$Subscription;
            invokeinterface java.util.concurrent.Flow$Subscription.cancel:()V
        15: .line 746
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.setALPN:()V
        16: .line 748
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.bytesProduced:()I
            ifgt 18
        17: .line 749
            return
        18: .line 751
      StackMap locals:
      StackMap stack:
            iload 1 /* completing */
            ifne 21
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.completed:Z
            ifne 21
        19: .line 752
            aload 0 /* this */
            iconst_1
            dup_x1
            putfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.completing:Z
            istore 1 /* completing */
        20: .line 754
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            getstatic jdk.internal.net.http.common.SSLFlowDelegate.SENTINEL:Ljava/nio/ByteBuffer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        21: .line 758
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* handshaking */
        start local 4 // boolean handshaking
        22: .line 759
            aload 3 /* result */
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.handshaking:()Z
            ifeq 27
        23: .line 760
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 24
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            ldc "handshaking"
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
        24: .line 761
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
            aload 3 /* result */
            iconst_2
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.doHandshake:(Ljdk/internal/net/http/common/SSLFlowDelegate$EngineResult;I)Z
            pop
        25: .line 762
            iconst_1
            istore 4 /* handshaking */
        26: .line 763
            goto 29
        27: .line 764
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.trySetALPN:()Z
            ifeq 29
        28: .line 765
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.resumeActivity:()V
        29: .line 768
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.cleanList:(Ljava/util/List;)V
        30: .line 769
            aload 0 /* this */
            aload 3 /* result */
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.sendResultBytes:(Ljdk/internal/net/http/common/SSLFlowDelegate$EngineResult;)V
        31: .line 770
            iload 4 /* handshaking */
            ifeq 35
        32: .line 771
            iload 1 /* completing */
            ifne 34
            aload 0 /* this */
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.needWrap:()Z
            ifeq 34
        33: .line 772
            goto 35
        34: .line 774
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean handshaking
        end local 3 // jdk.internal.net.http.common.SSLFlowDelegate$EngineResult result
        end local 2 // java.nio.ByteBuffer[] outbufs
        35: .line 735
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            invokestatic jdk.internal.net.http.common.Utils.remaining:(Ljava/util/List;)J
            lconst_0
            lcmp
            ifgt 7
            aload 0 /* this */
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.hsTriggered:()Z
            ifne 7
            aload 0 /* this */
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.needWrap:()Z
            ifne 7
        36: .line 778
            iload 1 /* completing */
            ifeq 42
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            invokestatic jdk.internal.net.http.common.Utils.remaining:(Ljava/util/List;)J
            lconst_0
            lcmp
            ifne 42
        37: .line 779
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.completed:Z
            ifne 41
        38: .line 780
            aload 0 /* this */
            iconst_1
            putfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.completed:Z
        39: .line 781
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
        40: .line 782
            aload 0 /* this */
            getstatic jdk.internal.net.http.common.Utils.EMPTY_BB_LIST:Ljava/util/List;
            iconst_1
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.outgoing:(Ljava/util/List;Z)V
        41: .line 784
      StackMap locals:
      StackMap stack:
            return
        42: .line 786
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 48
            aload 0 /* this */
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.needWrap:()Z
            ifeq 48
        43: .line 787
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
            getfield jdk.internal.net.http.common.SSLFlowDelegate.writer:Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;
            getstatic jdk.internal.net.http.common.SSLFlowDelegate.HS_TRIGGER:Ljava/nio/ByteBuffer;
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.addData:(Ljava/nio/ByteBuffer;)V
        44: .line 789
            goto 48
      StackMap locals:
      StackMap stack: java.lang.Throwable
        45: astore 2 /* ex */
        start local 2 // java.lang.Throwable ex
        46: .line 790
            aload 0 /* this */
            aload 2 /* ex */
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.errorCommon:(Ljava/lang/Throwable;)Z
            pop
        47: .line 791
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
            aload 2 /* ex */
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.handleError:(Ljava/lang/Throwable;)V
        end local 2 // java.lang.Throwable ex
        48: .line 793
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean completing
        end local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   49     0         this  Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;
            1   49     1   completing  Z
            8   35     2      outbufs  [Ljava/nio/ByteBuffer;
            9   35     3       result  Ljdk/internal/net/http/common/SSLFlowDelegate$EngineResult;
           22   35     4  handshaking  Z
           46   48     2           ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1    17      45  Class java.lang.Throwable
          18    34      45  Class java.lang.Throwable
          35    41      45  Class java.lang.Throwable
          42    44      45  Class java.lang.Throwable

  jdk.internal.net.http.common.SSLFlowDelegate$EngineResult wrapBuffers(java.nio.ByteBuffer[]);
    descriptor: ([Ljava/nio/ByteBuffer;)Ljdk/internal/net/http/common/SSLFlowDelegate$EngineResult;
    flags: (0x0000) 
    Code:
      stack=7, locals=9, args_size=2
        start local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
        start local 1 // java.nio.ByteBuffer[] src
         0: .line 811
            aload 1 /* src */
            invokestatic jdk.internal.net.http.common.Utils.remaining:([Ljava/nio/ByteBuffer;)J
            lstore 2 /* len */
        start local 2 // long len
         1: .line 812
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 3
         2: .line 813
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            new java.lang.StringBuilder
            dup
            ldc "wrapping "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 2 /* len */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            ldc " bytes"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
         3: .line 815
      StackMap locals: long
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeBuffer:Ljava/nio/ByteBuffer;
            astore 4 /* dst */
        start local 4 // java.nio.ByteBuffer dst
         4: .line 816
            aload 4 /* dst */
            ifnonnull 5
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate.getNetBuffer:()Ljava/nio/ByteBuffer;
            dup_x1
            putfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeBuffer:Ljava/nio/ByteBuffer;
            astore 4 /* dst */
         5: .line 817
      StackMap locals: java.nio.ByteBuffer
      StackMap stack:
            getstatic jdk.internal.net.http.common.SSLFlowDelegate$Writer.$assertionsDisabled:Z
            ifne 6
            aload 4 /* dst */
            invokevirtual java.nio.ByteBuffer.position:()I
            ifeq 6
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "buffer position is "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* dst */
            invokevirtual java.nio.ByteBuffer.position:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         6: .line 818
      StackMap locals:
      StackMap stack:
            getstatic jdk.internal.net.http.common.SSLFlowDelegate$Writer.$assertionsDisabled:Z
            ifne 7
            aload 4 /* dst */
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifne 7
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "buffer has no remaining space: capacity="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* dst */
            invokevirtual java.nio.ByteBuffer.capacity:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         7: .line 821
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
            getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
            aload 1 /* src */
            aload 4 /* dst */
            invokevirtual javax.net.ssl.SSLEngine.wrap:([Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
            astore 5 /* sslResult */
        start local 5 // javax.net.ssl.SSLEngineResult sslResult
         8: .line 822
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 9
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            new java.lang.StringBuilder
            dup
            ldc "SSLResult: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* sslResult */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
         9: .line 823
      StackMap locals: javax.net.ssl.SSLEngineResult
      StackMap stack:
            invokestatic jdk.internal.net.http.common.SSLFlowDelegate$Writer.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:()[I
            aload 0 /* this */
            aload 5 /* sslResult */
            invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
            dup_x1
            putfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.lastWrappedStatus:Ljavax/net/ssl/SSLEngineResult$Status;
            invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 36
                    2: 10
                    3: 20
                    4: 19
              default: 38
          }
        10: .line 827
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 11
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            ldc "BUFFER_OVERFLOW"
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
        11: .line 828
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
        12: .line 829
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
            getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
            invokeinterface javax.net.ssl.SSLSession.getPacketBufferSize:()I
        13: .line 828
            dup_x1
            putfield jdk.internal.net.http.common.SSLFlowDelegate.packetBufferSize:I
            istore 6 /* netSize */
        start local 6 // int netSize
        14: .line 830
            aload 0 /* this */
            iload 6 /* netSize */
            aload 4 /* dst */
            invokevirtual java.nio.ByteBuffer.position:()I
            iadd
            invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
            dup_x1
            putfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeBuffer:Ljava/nio/ByteBuffer;
            astore 7 /* b */
        start local 7 // java.nio.ByteBuffer b
        15: .line 831
            aload 4 /* dst */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
            pop
        16: .line 832
            aload 7 /* b */
            aload 4 /* dst */
            invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            pop
        17: .line 833
            aload 7 /* b */
            astore 4 /* dst */
        18: .line 834
            goto 7
        end local 7 // java.nio.ByteBuffer b
        end local 6 // int netSize
        19: .line 836
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 20
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            ldc "CLOSED"
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
        20: .line 841
      StackMap locals:
      StackMap stack:
            aload 4 /* dst */
            invokevirtual java.nio.ByteBuffer.position:()I
            ifne 23
        21: .line 842
            getstatic jdk.internal.net.http.common.SSLFlowDelegate.NOTHING:Ljava/nio/ByteBuffer;
            astore 8 /* dest */
        start local 8 // java.nio.ByteBuffer dest
        22: .line 843
            goto 31
        end local 8 // java.nio.ByteBuffer dest
      StackMap locals:
      StackMap stack:
        23: aload 4 /* dst */
            invokevirtual java.nio.ByteBuffer.position:()I
            aload 4 /* dst */
            invokevirtual java.nio.ByteBuffer.capacity:()I
            iconst_2
            idiv
            if_icmpge 28
        24: .line 847
            aload 4 /* dst */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
            pop
        25: .line 848
            aload 4 /* dst */
            invokestatic jdk.internal.net.http.common.Utils.copyAligned:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            astore 8 /* dest */
        start local 8 // java.nio.ByteBuffer dest
        26: .line 849
            aload 4 /* dst */
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
            pop
        27: .line 850
            goto 31
        end local 8 // java.nio.ByteBuffer dest
        28: .line 854
      StackMap locals:
      StackMap stack:
            aload 4 /* dst */
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
            pop
        29: .line 855
            aload 4 /* dst */
            astore 8 /* dest */
        start local 8 // java.nio.ByteBuffer dest
        30: .line 856
            aload 0 /* this */
            aconst_null
            putfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeBuffer:Ljava/nio/ByteBuffer;
        31: .line 858
      StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate$Writer java.nio.ByteBuffer[] long java.nio.ByteBuffer javax.net.ssl.SSLEngineResult top top java.nio.ByteBuffer
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 35
        32: .line 859
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            ldc "OK => produced: %d bytes into %d, not wrapped: %d"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        33: .line 860
            aload 8 /* dest */
            invokevirtual java.nio.ByteBuffer.remaining:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 8 /* dest */
            invokevirtual java.nio.ByteBuffer.capacity:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 1 /* src */
            invokestatic jdk.internal.net.http.common.Utils.remaining:([Ljava/nio/ByteBuffer;)J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
        34: .line 859
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
        35: .line 861
      StackMap locals:
      StackMap stack:
            new jdk.internal.net.http.common.SSLFlowDelegate$EngineResult
            dup
            aload 5 /* sslResult */
            aload 8 /* dest */
            invokespecial jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult;Ljava/nio/ByteBuffer;)V
            areturn
        end local 8 // java.nio.ByteBuffer dest
        36: .line 866
      StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate$Writer java.nio.ByteBuffer[] long java.nio.ByteBuffer javax.net.ssl.SSLEngineResult
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debug:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 37
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debug:Ljdk/internal/net/http/common/Logger;
            ldc "BUFFER_UNDERFLOW"
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
        37: .line 867
      StackMap locals:
      StackMap stack:
            new jdk.internal.net.http.common.SSLFlowDelegate$EngineResult
            dup
            aload 5 /* sslResult */
            invokespecial jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.<init>:(Ljavax/net/ssl/SSLEngineResult;)V
            areturn
        38: .line 869
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 40
        39: .line 870
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            ldc "result: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* sslResult */
            invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
            aastore
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
        40: .line 871
      StackMap locals:
      StackMap stack:
            getstatic jdk.internal.net.http.common.SSLFlowDelegate$Writer.$assertionsDisabled:Z
            ifne 7
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "result:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* sslResult */
            invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 5 // javax.net.ssl.SSLEngineResult sslResult
        end local 4 // java.nio.ByteBuffer dst
        end local 2 // long len
        end local 1 // java.nio.ByteBuffer[] src
        end local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   41     0       this  Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;
            0   41     1        src  [Ljava/nio/ByteBuffer;
            1   41     2        len  J
            4   41     4        dst  Ljava/nio/ByteBuffer;
            8   41     5  sslResult  Ljavax/net/ssl/SSLEngineResult;
           14   19     6    netSize  I
           15   19     7          b  Ljava/nio/ByteBuffer;
           22   23     8       dest  Ljava/nio/ByteBuffer;
           26   28     8       dest  Ljava/nio/ByteBuffer;
           30   36     8       dest  Ljava/nio/ByteBuffer;
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
      Name  Flags
      src   

  private boolean needWrap();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
         0: .line 877
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.this$0:Ljdk/internal/net/http/common/SSLFlowDelegate;
            getfield jdk.internal.net.http.common.SSLFlowDelegate.engine:Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;

  private void sendResultBytes(jdk.internal.net.http.common.SSLFlowDelegate$EngineResult);
    descriptor: (Ljdk/internal/net/http/common/SSLFlowDelegate$EngineResult;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
        start local 1 // jdk.internal.net.http.common.SSLFlowDelegate$EngineResult result
         0: .line 881
            aload 1 /* result */
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.bytesProduced:()I
            ifle 6
         1: .line 882
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 5
         2: .line 883
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.debugw:Ljdk/internal/net/http/common/Logger;
            ldc "Sending %d bytes downstream"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         3: .line 884
            aload 1 /* result */
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.bytesProduced:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         4: .line 883
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
         5: .line 885
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* result */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$EngineResult.destBuffer:Ljava/nio/ByteBuffer;
            iconst_0
            invokevirtual jdk.internal.net.http.common.SSLFlowDelegate$Writer.outgoing:(Ljava/nio/ByteBuffer;Z)V
         6: .line 887
      StackMap locals:
      StackMap stack:
            return
        end local 1 // jdk.internal.net.http.common.SSLFlowDelegate$EngineResult result
        end local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    7     0    this  Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;
            0    7     1  result  Ljdk/internal/net/http/common/SSLFlowDelegate$EngineResult;
    MethodParameters:
        Name  Flags
      result  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
         0: .line 891
            new java.lang.StringBuilder
            dup
            ldc "WRITER: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokespecial jdk.internal.net.http.common.SubscriberWrapper.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 892
            ldc ", writeList size: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 893
            ldc ", scheduler: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.scheduler:Ljdk/internal/net/http/common/SequentialScheduler;
            invokevirtual jdk.internal.net.http.common.SequentialScheduler.isStopped:()Z
            ifeq 3
            ldc "stopped"
            goto 4
      StackMap locals:
      StackMap stack: java.lang.StringBuilder
         3: ldc "running"
      StackMap locals: jdk.internal.net.http.common.SSLFlowDelegate$Writer
      StackMap stack: java.lang.StringBuilder java.lang.String
         4: invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 894
            ldc ", status: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield jdk.internal.net.http.common.SSLFlowDelegate$Writer.lastWrappedStatus:Ljavax/net/ssl/SSLEngineResult$Status;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         6: .line 891
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // jdk.internal.net.http.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljdk/internal/net/http/common/SSLFlowDelegate$Writer;

  static int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 636
            getstatic jdk.internal.net.http.common.SSLFlowDelegate$Writer.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic javax.net.ssl.SSLEngineResult$Status.values:()[Ljavax/net/ssl/SSLEngineResult$Status;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
            iconst_4
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
            invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
            iconst_3
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            dup
            putstatic jdk.internal.net.http.common.SSLFlowDelegate$Writer.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
}
SourceFile: "SSLFlowDelegate.java"
NestHost: jdk.internal.net.http.common.SSLFlowDelegate
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Subscription = java.util.concurrent.Flow$Subscription of java.util.concurrent.Flow
  public final HandshakeStatus = javax.net.ssl.SSLEngineResult$HandshakeStatus of javax.net.ssl.SSLEngineResult
  public final Status = javax.net.ssl.SSLEngineResult$Status of javax.net.ssl.SSLEngineResult
  EngineResult = jdk.internal.net.http.common.SSLFlowDelegate$EngineResult of jdk.internal.net.http.common.SSLFlowDelegate
  Writer = jdk.internal.net.http.common.SSLFlowDelegate$Writer of jdk.internal.net.http.common.SSLFlowDelegate
  WriterDownstreamPusher = jdk.internal.net.http.common.SSLFlowDelegate$Writer$WriterDownstreamPusher of jdk.internal.net.http.common.SSLFlowDelegate$Writer
  public abstract RestartableTask = jdk.internal.net.http.common.SequentialScheduler$RestartableTask of jdk.internal.net.http.common.SequentialScheduler