class jdk.incubator.http.internal.common.SSLFlowDelegate$Writer extends jdk.incubator.http.internal.common.SubscriberWrapper
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.incubator.http.internal.common.SSLFlowDelegate$Writer
  super_class: jdk.incubator.http.internal.common.SubscriberWrapper
{
  final jdk.incubator.http.internal.common.SequentialScheduler scheduler;
    descriptor: Ljdk/incubator/http/internal/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 java.lang.System$Logger debugw;
    descriptor: Ljava/lang/System$Logger;
    flags: (0x0010) ACC_FINAL

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

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

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

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

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

  void <init>(jdk.incubator.http.internal.common.SSLFlowDelegate);
    descriptor: (Ljdk/incubator/http/internal/common/SSLFlowDelegate;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // jdk.incubator.http.internal.common.SSLFlowDelegate$Writer this
         0: .line 451
            aload 0 /* this */
            aload 1
            putfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.this$0:Ljdk/incubator/http/internal/common/SSLFlowDelegate;
         1: .line 452
            aload 0 /* this */
            invokespecial jdk.incubator.http.internal.common.SubscriberWrapper.<init>:()V
         2: .line 442
            aload 0 /* this */
         3: .line 443
            aload 0 /* this */
            invokedynamic get(Ljdk/incubator/http/internal/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/incubator/http/internal/common/SSLFlowDelegate$Writer.dbgString()Ljava/lang/String; (5)
                  ()Ljava/lang/String;
            getstatic jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.DEBUG:Z
            invokestatic jdk.incubator.http.internal.common.Utils.getDebugLogger:(Ljava/util/function/Supplier;Z)Ljava/lang/System$Logger;
            putfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.debugw:Ljava/lang/System$Logger;
         4: .line 453
            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.incubator.http.internal.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
         5: .line 454
            aload 0 /* this */
            new jdk.incubator.http.internal.common.SequentialScheduler
            dup
            new jdk.incubator.http.internal.common.SSLFlowDelegate$Writer$WriterDownstreamPusher
            dup
            aload 0 /* this */
            invokespecial jdk.incubator.http.internal.common.SSLFlowDelegate$Writer$WriterDownstreamPusher.<init>:(Ljdk/incubator/http/internal/common/SSLFlowDelegate$Writer;)V
            invokespecial jdk.incubator.http.internal.common.SequentialScheduler.<init>:(Ljdk/incubator/http/internal/common/SequentialScheduler$RestartableTask;)V
            putfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.scheduler:Ljdk/incubator/http/internal/common/SequentialScheduler;
         6: .line 455
            return
        end local 0 // jdk.incubator.http.internal.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Ljdk/incubator/http/internal/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=3, locals=3, args_size=3
        start local 0 // jdk.incubator.http.internal.common.SSLFlowDelegate$Writer this
        start local 1 // java.util.List buffers
        start local 2 // boolean complete
         0: .line 459
            getstatic jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.$assertionsDisabled:Z
            ifne 1
            iload 2 /* complete */
            ifeq 1
            aload 1 /* buffers */
            getstatic jdk.incubator.http.internal.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 460
      StackMap locals:
      StackMap stack:
            getstatic jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.$assertionsDisabled:Z
            ifne 2
            aload 1 /* buffers */
            getstatic jdk.incubator.http.internal.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 461
      StackMap locals:
      StackMap stack:
            iload 2 /* complete */
            ifeq 7
         3: .line 462
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.debugw:Ljava/lang/System$Logger;
            getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
            ldc "adding SENTINEL"
            invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;)V
         4: .line 463
            aload 0 /* this */
            iconst_1
            putfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.completing:Z
         5: .line 464
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            getstatic jdk.incubator.http.internal.common.SSLFlowDelegate.SENTINEL:Ljava/nio/ByteBuffer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 465
            goto 8
         7: .line 466
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            aload 1 /* buffers */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         8: .line 468
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.debugw:Ljava/lang/System$Logger;
            getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
            aload 1 /* buffers */
            invokedynamic get(Ljava/util/List;)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/incubator/http/internal/common/SSLFlowDelegate$Writer.lambda$1(Ljava/util/List;)Ljava/lang/String; (6)
                  ()Ljava/lang/String;
            invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/util/function/Supplier;)V
         9: .line 471
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.scheduler:Ljdk/incubator/http/internal/common/SequentialScheduler;
            invokevirtual jdk.incubator.http.internal.common.SequentialScheduler.runOrSchedule:()V
        10: .line 472
            return
        end local 2 // boolean complete
        end local 1 // java.util.List buffers
        end local 0 // jdk.incubator.http.internal.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Ljdk/incubator/http/internal/common/SSLFlowDelegate$Writer;
            0   11     1   buffers  Ljava/util/List<Ljava/nio/ByteBuffer;>;
            0   11     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.incubator.http.internal.common.SSLFlowDelegate$Writer this
         0: .line 475
            new java.lang.StringBuilder
            dup
            ldc "SSL Writer("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.this$0:Ljdk/incubator/http/internal/common/SSLFlowDelegate;
            getfield jdk.incubator.http.internal.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.incubator.http.internal.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/incubator/http/internal/common/SSLFlowDelegate$Writer;

  protected void onSubscribe();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.incubator.http.internal.common.SSLFlowDelegate$Writer this
         0: .line 479
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.this$0:Ljdk/incubator/http/internal/common/SSLFlowDelegate;
            getstatic jdk.incubator.http.internal.common.SSLFlowDelegate$EngineResult.INIT:Ljdk/incubator/http/internal/common/SSLFlowDelegate$EngineResult;
            iconst_2
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate.doHandshake:(Ljdk/incubator/http/internal/common/SSLFlowDelegate$EngineResult;I)V
         1: .line 480
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.this$0:Ljdk/incubator/http/internal/common/SSLFlowDelegate;
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate.resumeActivity:()V
         2: .line 481
            return
        end local 0 // jdk.incubator.http.internal.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/incubator/http/internal/common/SSLFlowDelegate$Writer;

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

  void stop();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.incubator.http.internal.common.SSLFlowDelegate$Writer this
         0: .line 488
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.debugw:Ljava/lang/System$Logger;
            getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
            ldc "stop"
            invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;)V
         1: .line 489
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.scheduler:Ljdk/incubator/http/internal/common/SequentialScheduler;
            invokevirtual jdk.incubator.http.internal.common.SequentialScheduler.stop:()V
         2: .line 490
            return
        end local 0 // jdk.incubator.http.internal.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/incubator/http/internal/common/SSLFlowDelegate$Writer;

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

  private boolean isCompleting();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.incubator.http.internal.common.SSLFlowDelegate$Writer this
         0: .line 498
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.completing:Z
            ireturn
        end local 0 // jdk.incubator.http.internal.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/incubator/http/internal/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.incubator.http.internal.common.SSLFlowDelegate$Writer this
        start local 1 // long currentWindow
        start local 3 // long downstreamQsize
         0: .line 503
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            bipush 10
            if_icmple 2
         1: .line 504
            lconst_0
            lreturn
         2: .line 506
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* currentWindow */
            lload 3 /* downstreamQsize */
            invokespecial jdk.incubator.http.internal.common.SubscriberWrapper.upstreamWindowUpdate:(JJ)J
            lreturn
        end local 3 // long downstreamQsize
        end local 1 // long currentWindow
        end local 0 // jdk.incubator.http.internal.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Ljdk/incubator/http/internal/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.incubator.http.internal.common.SSLFlowDelegate$Writer this
         0: .line 510
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            dup
            astore 1
            monitorenter
         1: .line 511
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 6
      StackMap locals: jdk.incubator.http.internal.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 512
            aload 2 /* b */
            getstatic jdk.incubator.http.internal.common.SSLFlowDelegate.HS_TRIGGER:Ljava/nio/ByteBuffer;
            if_acmpne 6
         4: .line 513
            aload 1
            monitorexit
         5: iconst_1
            ireturn
        end local 2 // java.nio.ByteBuffer b
         6: .line 511
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         7: .line 514
            aload 1
            monitorexit
         8: iconst_0
            ireturn
         9: .line 510
      StackMap locals: jdk.incubator.http.internal.common.SSLFlowDelegate$Writer java.util.List
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        10: athrow
        end local 0 // jdk.incubator.http.internal.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Ljdk/incubator/http/internal/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

  private void processData();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=5, args_size=1
        start local 0 // jdk.incubator.http.internal.common.SSLFlowDelegate$Writer this
         0: .line 519
            aload 0 /* this */
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.isCompleting:()Z
            istore 1 /* completing */
        start local 1 // boolean completing
         1: .line 522
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.debugw:Ljava/lang/System$Logger;
            getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
            aload 0 /* this */
            invokedynamic get(Ljdk/incubator/http/internal/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/incubator/http/internal/common/SSLFlowDelegate$Writer.lambda$2()Ljava/lang/String; (7)
                  ()Ljava/lang/String;
            invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/util/function/Supplier;)V
         2: .line 523
            goto 28
         3: .line 525
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            getstatic jdk.incubator.http.internal.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
         4: .line 526
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.this$0:Ljdk/incubator/http/internal/common/SSLFlowDelegate;
            aload 2 /* outbufs */
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate.wrapBuffers:([Ljava/nio/ByteBuffer;)Ljdk/incubator/http/internal/common/SSLFlowDelegate$EngineResult;
            astore 3 /* result */
        start local 3 // jdk.incubator.http.internal.common.SSLFlowDelegate$EngineResult result
         5: .line 527
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.debugw:Ljava/lang/System$Logger;
            getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
            ldc "wrapBuffer returned %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* result */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$EngineResult.result:Ljavax/net/ssl/SSLEngineResult;
            aastore
            invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 529
            aload 3 /* result */
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate$EngineResult.status:()Ljavax/net/ssl/SSLEngineResult$Status;
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            if_acmpne 12
         7: .line 530
            aload 3 /* result */
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate$EngineResult.bytesProduced:()I
            ifgt 9
         8: .line 531
            return
         9: .line 533
      StackMap locals: java.nio.ByteBuffer[] jdk.incubator.http.internal.common.SSLFlowDelegate$EngineResult
      StackMap stack:
            iload 1 /* completing */
            ifne 12
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.completed:Z
            ifne 12
        10: .line 534
            aload 0 /* this */
            iconst_1
            dup_x1
            putfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.completing:Z
            istore 1 /* completing */
        11: .line 536
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            getstatic jdk.incubator.http.internal.common.SSLFlowDelegate.SENTINEL:Ljava/nio/ByteBuffer;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        12: .line 540
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* handshaking */
        start local 4 // boolean handshaking
        13: .line 541
            aload 3 /* result */
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate$EngineResult.handshaking:()Z
            ifeq 18
        14: .line 542
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.debugw:Ljava/lang/System$Logger;
            getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
            ldc "handshaking"
            invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;)V
        15: .line 543
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.this$0:Ljdk/incubator/http/internal/common/SSLFlowDelegate;
            aload 3 /* result */
            iconst_2
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate.doHandshake:(Ljdk/incubator/http/internal/common/SSLFlowDelegate$EngineResult;I)V
        16: .line 544
            iconst_1
            istore 4 /* handshaking */
        17: .line 545
            goto 21
        18: .line 546
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.this$0:Ljdk/incubator/http/internal/common/SSLFlowDelegate;
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate.handshakeState:Ljava/util/concurrent/atomic/AtomicInteger;
            iconst_0
            invokevirtual java.util.concurrent.atomic.AtomicInteger.getAndSet:(I)I
            bipush -5
            iand
            iconst_1
            if_icmpne 21
        19: .line 547
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.this$0:Ljdk/incubator/http/internal/common/SSLFlowDelegate;
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate.setALPN:()V
        20: .line 548
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.this$0:Ljdk/incubator/http/internal/common/SSLFlowDelegate;
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate.resumeActivity:()V
        21: .line 551
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.this$0:Ljdk/incubator/http/internal/common/SSLFlowDelegate;
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate.cleanList:(Ljava/util/List;)V
        22: .line 552
            aload 0 /* this */
            aload 3 /* result */
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.sendResultBytes:(Ljdk/incubator/http/internal/common/SSLFlowDelegate$EngineResult;)V
        23: .line 553
            iload 4 /* handshaking */
            ifeq 28
            iload 1 /* completing */
            ifne 28
        24: .line 554
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 26
            aload 3 /* result */
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate$EngineResult.needUnwrap:()Z
            ifne 26
        25: .line 555
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.this$0:Ljdk/incubator/http/internal/common/SSLFlowDelegate;
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate.writer:Ljdk/incubator/http/internal/common/SSLFlowDelegate$Writer;
            getstatic jdk.incubator.http.internal.common.SSLFlowDelegate.HS_TRIGGER:Ljava/nio/ByteBuffer;
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.addData:(Ljava/nio/ByteBuffer;)V
        26: .line 557
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.needWrap:()Z
            ifeq 27
            goto 28
        27: .line 558
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean handshaking
        end local 3 // jdk.incubator.http.internal.common.SSLFlowDelegate$EngineResult result
        end local 2 // java.nio.ByteBuffer[] outbufs
        28: .line 523
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            invokestatic jdk.incubator.http.internal.common.Utils.remaining:(Ljava/util/List;)J
            lconst_0
            lcmp
            ifgt 3
            aload 0 /* this */
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.hsTriggered:()Z
            ifne 3
        29: .line 524
            aload 0 /* this */
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.needWrap:()Z
            ifne 3
        30: .line 561
            iload 1 /* completing */
            ifeq 36
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            invokestatic jdk.incubator.http.internal.common.Utils.remaining:(Ljava/util/List;)J
            lconst_0
            lcmp
            ifne 36
        31: .line 568
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.completed:Z
            ifne 35
        32: .line 569
            aload 0 /* this */
            iconst_1
            putfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.completed:Z
        33: .line 570
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
        34: .line 571
            aload 0 /* this */
            getstatic jdk.incubator.http.internal.common.Utils.EMPTY_BB_LIST:Ljava/util/List;
            iconst_1
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.outgoing:(Ljava/util/List;Z)V
        35: .line 573
      StackMap locals:
      StackMap stack:
            return
        36: .line 575
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 41
            aload 0 /* this */
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.needWrap:()Z
            ifeq 41
        37: .line 576
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.this$0:Ljdk/incubator/http/internal/common/SSLFlowDelegate;
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate.writer:Ljdk/incubator/http/internal/common/SSLFlowDelegate$Writer;
            getstatic jdk.incubator.http.internal.common.SSLFlowDelegate.HS_TRIGGER:Ljava/nio/ByteBuffer;
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.addData:(Ljava/nio/ByteBuffer;)V
        38: .line 578
            goto 41
      StackMap locals:
      StackMap stack: java.lang.Throwable
        39: astore 2 /* ex */
        start local 2 // java.lang.Throwable ex
        40: .line 579
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.this$0:Ljdk/incubator/http/internal/common/SSLFlowDelegate;
            aload 2 /* ex */
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate.handleError:(Ljava/lang/Throwable;)V
        end local 2 // java.lang.Throwable ex
        41: .line 581
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean completing
        end local 0 // jdk.incubator.http.internal.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   42     0         this  Ljdk/incubator/http/internal/common/SSLFlowDelegate$Writer;
            1   42     1   completing  Z
            4   28     2      outbufs  [Ljava/nio/ByteBuffer;
            5   28     3       result  Ljdk/incubator/http/internal/common/SSLFlowDelegate$EngineResult;
           13   28     4  handshaking  Z
           40   41     2           ex  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     8      39  Class java.lang.Throwable
           9    27      39  Class java.lang.Throwable
          28    35      39  Class java.lang.Throwable
          36    38      39  Class java.lang.Throwable

  private boolean needWrap();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.incubator.http.internal.common.SSLFlowDelegate$Writer this
         0: .line 584
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.this$0:Ljdk/incubator/http/internal/common/SSLFlowDelegate;
            getfield jdk.incubator.http.internal.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.incubator.http.internal.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/incubator/http/internal/common/SSLFlowDelegate$Writer;

  private void sendResultBytes(jdk.incubator.http.internal.common.SSLFlowDelegate$EngineResult);
    descriptor: (Ljdk/incubator/http/internal/common/SSLFlowDelegate$EngineResult;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // jdk.incubator.http.internal.common.SSLFlowDelegate$Writer this
        start local 1 // jdk.incubator.http.internal.common.SSLFlowDelegate$EngineResult result
         0: .line 588
            aload 1 /* result */
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate$EngineResult.bytesProduced:()I
            ifle 5
         1: .line 589
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.debugw:Ljava/lang/System$Logger;
            getstatic java.lang.System$Logger$Level.DEBUG:Ljava/lang/System$Logger$Level;
            ldc "Sending %d bytes downstream"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         2: .line 590
            aload 1 /* result */
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate$EngineResult.bytesProduced:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
         3: .line 589
            invokeinterface java.lang.System$Logger.log:(Ljava/lang/System$Logger$Level;Ljava/lang/String;[Ljava/lang/Object;)V
         4: .line 591
            aload 0 /* this */
            aload 1 /* result */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$EngineResult.destBuffer:Ljava/nio/ByteBuffer;
            iconst_0
            invokevirtual jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.outgoing:(Ljava/nio/ByteBuffer;Z)V
         5: .line 593
      StackMap locals:
      StackMap stack:
            return
        end local 1 // jdk.incubator.http.internal.common.SSLFlowDelegate$EngineResult result
        end local 0 // jdk.incubator.http.internal.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljdk/incubator/http/internal/common/SSLFlowDelegate$Writer;
            0    6     1  result  Ljdk/incubator/http/internal/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.incubator.http.internal.common.SSLFlowDelegate$Writer this
         0: .line 597
            new java.lang.StringBuilder
            dup
            ldc "WRITER: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokespecial jdk.incubator.http.internal.common.SubscriberWrapper.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 598
            ldc " writeList size "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield jdk.incubator.http.internal.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 597
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // jdk.incubator.http.internal.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/incubator/http/internal/common/SSLFlowDelegate$Writer;

  private static java.lang.String lambda$1(java.util.List);
    descriptor: (Ljava/util/List;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
         0: .line 468
            new java.lang.StringBuilder
            dup
            ldc "added "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0
            invokeinterface java.util.List.size:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         1: .line 469
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0
            invokestatic jdk.incubator.http.internal.common.Utils.remaining:(Ljava/util/List;)J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
         2: .line 470
            ldc " bytes) to the writeList"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 468
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 470
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private java.lang.String lambda$2();
    descriptor: ()Ljava/lang/String;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.incubator.http.internal.common.SSLFlowDelegate$Writer this
         0: .line 522
            new java.lang.StringBuilder
            dup
            ldc "processData("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield jdk.incubator.http.internal.common.SSLFlowDelegate$Writer.writeList:Ljava/util/List;
            invokestatic jdk.incubator.http.internal.common.Utils.remaining:(Ljava/util/List;)J
            invokevirtual java.lang.StringBuilder.append:(J)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.incubator.http.internal.common.SSLFlowDelegate$Writer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/incubator/http/internal/common/SSLFlowDelegate$Writer;
}
SourceFile: "SSLFlowDelegate.java"
NestHost: jdk.incubator.http.internal.common.SSLFlowDelegate
InnerClasses:
  public abstract Logger = java.lang.System$Logger of java.lang.System
  public final Level = java.lang.System$Logger$Level of java.lang.System$Logger
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  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.incubator.http.internal.common.SSLFlowDelegate$EngineResult of jdk.incubator.http.internal.common.SSLFlowDelegate
  Writer = jdk.incubator.http.internal.common.SSLFlowDelegate$Writer of jdk.incubator.http.internal.common.SSLFlowDelegate
  WriterDownstreamPusher = jdk.incubator.http.internal.common.SSLFlowDelegate$Writer$WriterDownstreamPusher of jdk.incubator.http.internal.common.SSLFlowDelegate$Writer
  public abstract RestartableTask = jdk.incubator.http.internal.common.SequentialScheduler$RestartableTask of jdk.incubator.http.internal.common.SequentialScheduler