class jdk.internal.net.http.websocket.TransportImpl$SendTask extends jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.internal.net.http.websocket.TransportImpl$SendTask
  super_class: jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask
{
  private final jdk.internal.net.http.websocket.MessageQueue$QueueCallback<java.lang.Boolean, java.io.IOException> encodingCallback;
    descriptor: Ljdk/internal/net/http/websocket/MessageQueue$QueueCallback;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljdk/internal/net/http/websocket/MessageQueue$QueueCallback<Ljava/lang/Boolean;Ljava/io/IOException;>;

  private boolean firstPass;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean encoded;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Object attachment;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  private java.util.function.BiConsumer action;
    descriptor: Ljava/util/function/BiConsumer;
    flags: (0x0002) ACC_PRIVATE

  private java.util.concurrent.CompletableFuture future;
    descriptor: Ljava/util/concurrent/CompletableFuture;
    flags: (0x0002) ACC_PRIVATE

  private final jdk.internal.net.http.websocket.MessageQueue$QueueCallback<java.lang.Boolean, java.lang.RuntimeException> loadCallback;
    descriptor: Ljdk/internal/net/http/websocket/MessageQueue$QueueCallback;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljdk/internal/net/http/websocket/MessageQueue$QueueCallback<Ljava/lang/Boolean;Ljava/lang/RuntimeException;>;

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

  private static volatile int[] $SWITCH_TABLE$jdk$internal$net$http$websocket$TransportImpl$ChannelState;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private void <init>(jdk.internal.net.http.websocket.TransportImpl);
    descriptor: (Ljdk/internal/net/http/websocket/TransportImpl;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.internal.net.http.websocket.TransportImpl$SendTask this
         0: .line 354
            aload 0 /* this */
            aload 1
            putfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            aload 0 /* this */
            invokespecial jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask.<init>:()V
         1: .line 357
            aload 0 /* this */
            new jdk.internal.net.http.websocket.TransportImpl$SendTask$1
            dup
            aload 0 /* this */
            invokespecial jdk.internal.net.http.websocket.TransportImpl$SendTask$1.<init>:(Ljdk/internal/net/http/websocket/TransportImpl$SendTask;)V
            putfield jdk.internal.net.http.websocket.TransportImpl$SendTask.encodingCallback:Ljdk/internal/net/http/websocket/MessageQueue$QueueCallback;
         2: .line 422
            aload 0 /* this */
            iconst_1
            putfield jdk.internal.net.http.websocket.TransportImpl$SendTask.firstPass:Z
         3: .line 433
            aload 0 /* this */
            new jdk.internal.net.http.websocket.TransportImpl$SendTask$2
            dup
            aload 0 /* this */
            invokespecial jdk.internal.net.http.websocket.TransportImpl$SendTask$2.<init>:(Ljdk/internal/net/http/websocket/TransportImpl$SendTask;)V
            putfield jdk.internal.net.http.websocket.TransportImpl$SendTask.loadCallback:Ljdk/internal/net/http/websocket/MessageQueue$QueueCallback;
         4: .line 354
            return
        end local 0 // jdk.internal.net.http.websocket.TransportImpl$SendTask this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Ljdk/internal/net/http/websocket/TransportImpl$SendTask;
    MethodParameters:
        Name  Flags
      this$0  final

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // jdk.internal.net.http.websocket.TransportImpl$SendTask this
         0: .line 521
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 30
         1: .line 522
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            ldc "enter send task"
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
         2: .line 524
            goto 30
         3: .line 526
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            getfield jdk.internal.net.http.websocket.TransportImpl.dst:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
            ifeq 10
         4: .line 527
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 8
         5: .line 528
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            ldc "%s bytes remaining in buffer %s"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         6: .line 529
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            getfield jdk.internal.net.http.websocket.TransportImpl.dst:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.remaining:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            getfield jdk.internal.net.http.websocket.TransportImpl.dst:Ljava/nio/ByteBuffer;
            aastore
         7: .line 528
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
         8: .line 533
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual jdk.internal.net.http.websocket.TransportImpl$SendTask.tryCompleteWrite:()Z
            ifne 30
         9: .line 534
            goto 31
        10: .line 536
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.encoded:Z
            ifne 21
        11: .line 537
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.firstPass:Z
            ifeq 16
        12: .line 538
            aload 0 /* this */
            iconst_0
            putfield jdk.internal.net.http.websocket.TransportImpl$SendTask.firstPass:Z
        13: .line 539
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            getfield jdk.internal.net.http.websocket.TransportImpl.queue:Ljdk/internal/net/http/websocket/MessageQueue;
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.loadCallback:Ljdk/internal/net/http/websocket/MessageQueue$QueueCallback;
            invokevirtual jdk.internal.net.http.websocket.MessageQueue.peek:(Ljdk/internal/net/http/websocket/MessageQueue$QueueCallback;)Ljava/lang/Object;
            pop
        14: .line 540
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 16
        15: .line 541
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            ldc "load message"
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
        16: .line 544
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            getfield jdk.internal.net.http.websocket.TransportImpl.dst:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/ByteBuffer;
            pop
        17: .line 545
            aload 0 /* this */
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            getfield jdk.internal.net.http.websocket.TransportImpl.queue:Ljdk/internal/net/http/websocket/MessageQueue;
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.encodingCallback:Ljdk/internal/net/http/websocket/MessageQueue$QueueCallback;
            invokevirtual jdk.internal.net.http.websocket.MessageQueue.peek:(Ljdk/internal/net/http/websocket/MessageQueue$QueueCallback;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            putfield jdk.internal.net.http.websocket.TransportImpl$SendTask.encoded:Z
        18: .line 546
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            getfield jdk.internal.net.http.websocket.TransportImpl.dst:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/ByteBuffer;
            pop
        19: .line 547
            aload 0 /* this */
            invokevirtual jdk.internal.net.http.websocket.TransportImpl$SendTask.tryCompleteWrite:()Z
            ifne 30
        20: .line 548
            goto 31
        21: .line 552
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            getfield jdk.internal.net.http.websocket.TransportImpl.encoder:Ljdk/internal/net/http/websocket/MessageEncoder;
            invokevirtual jdk.internal.net.http.websocket.MessageEncoder.reset:()V
        22: .line 553
            aload 0 /* this */
            aconst_null
            invokevirtual jdk.internal.net.http.websocket.TransportImpl$SendTask.removeAndComplete:(Ljava/lang/Throwable;)V
        23: .line 555
            goto 30
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: astore 1 /* t */
        start local 1 // java.lang.Throwable t
        25: .line 556
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 27
        26: .line 557
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            ldc "send task exception %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* t */
            aastore
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
        27: .line 562
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            getfield jdk.internal.net.http.websocket.TransportImpl.dst:Ljava/nio/ByteBuffer;
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            getfield jdk.internal.net.http.websocket.TransportImpl.dst:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.limit:()I
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
            pop
        28: .line 563
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            getfield jdk.internal.net.http.websocket.TransportImpl.encoder:Ljdk/internal/net/http/websocket/MessageEncoder;
            invokevirtual jdk.internal.net.http.websocket.MessageEncoder.reset:()V
        29: .line 564
            aload 0 /* this */
            aload 1 /* t */
            invokevirtual jdk.internal.net.http.websocket.TransportImpl$SendTask.removeAndComplete:(Ljava/lang/Throwable;)V
        end local 1 // java.lang.Throwable t
        30: .line 524
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            getfield jdk.internal.net.http.websocket.TransportImpl.queue:Ljdk/internal/net/http/websocket/MessageQueue;
            invokevirtual jdk.internal.net.http.websocket.MessageQueue.isEmpty:()Z
            ifeq 3
        31: .line 567
      StackMap locals:
      StackMap stack:
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 33
        32: .line 568
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            ldc "exit send task"
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
        33: .line 570
      StackMap locals:
      StackMap stack:
            return
        end local 0 // jdk.internal.net.http.websocket.TransportImpl$SendTask this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   34     0  this  Ljdk/internal/net/http/websocket/TransportImpl$SendTask;
           25   30     1     t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3     9      24  Class java.lang.Throwable
          10    20      24  Class java.lang.Throwable
          21    23      24  Class java.lang.Throwable

  private boolean tryCompleteWrite();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=1
        start local 0 // jdk.internal.net.http.websocket.TransportImpl$SendTask this
         0: .line 573
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 2
         1: .line 574
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            ldc "enter writing"
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
         2: .line 576
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* finished */
        start local 1 // boolean finished
         3: .line 579
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            getfield jdk.internal.net.http.websocket.TransportImpl.writeState:Ljava/util/concurrent/atomic/AtomicReference;
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast jdk.internal.net.http.websocket.TransportImpl$ChannelState
            astore 2 /* ws */
        start local 2 // jdk.internal.net.http.websocket.TransportImpl$ChannelState ws
         4: .line 580
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 6
         5: .line 581
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            ldc "write state: %s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* ws */
            aastore
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 583
      StackMap locals: jdk.internal.net.http.websocket.TransportImpl$ChannelState
      StackMap stack:
            invokestatic jdk.internal.net.http.websocket.TransportImpl$SendTask.$SWITCH_TABLE$jdk$internal$net$http$websocket$TransportImpl$ChannelState:()[I
            aload 2 /* ws */
            invokevirtual jdk.internal.net.http.websocket.TransportImpl$ChannelState.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 8
                    2: 15
                    3: 7
                    4: 23
              default: 24
          }
         7: .line 585
      StackMap locals:
      StackMap stack:
            goto 25
         8: .line 587
      StackMap locals:
      StackMap stack:
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 10
         9: .line 588
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            ldc "registering write event"
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
        10: .line 590
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            getfield jdk.internal.net.http.websocket.TransportImpl.channel:Ljdk/internal/net/http/websocket/RawChannel;
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            getfield jdk.internal.net.http.websocket.TransportImpl.writeEvent:Ljdk/internal/net/http/websocket/RawChannel$RawEvent;
            invokeinterface jdk.internal.net.http.websocket.RawChannel.registerEvent:(Ljdk/internal/net/http/websocket/RawChannel$RawEvent;)V
        11: .line 591
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            getfield jdk.internal.net.http.websocket.TransportImpl.writeState:Ljava/util/concurrent/atomic/AtomicReference;
            getstatic jdk.internal.net.http.websocket.TransportImpl$ChannelState.UNREGISTERED:Ljdk/internal/net/http/websocket/TransportImpl$ChannelState;
            getstatic jdk.internal.net.http.websocket.TransportImpl$ChannelState.WAITING:Ljdk/internal/net/http/websocket/TransportImpl$ChannelState;
            invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        12: .line 592
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 25
        13: .line 593
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            ldc "registered write event"
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
        14: .line 595
            goto 25
        15: .line 597
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            invokevirtual jdk.internal.net.http.websocket.TransportImpl.write:()Z
            istore 3 /* written */
        start local 3 // boolean written
        16: .line 598
            iload 3 /* written */
            ifeq 21
        17: .line 599
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 19
        18: .line 600
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            ldc "finished writing to the channel"
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
        19: .line 602
      StackMap locals: int
      StackMap stack:
            iconst_1
            istore 1 /* finished */
        20: .line 603
            goto 25
        21: .line 605
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            getfield jdk.internal.net.http.websocket.TransportImpl.writeState:Ljava/util/concurrent/atomic/AtomicReference;
            getstatic jdk.internal.net.http.websocket.TransportImpl$ChannelState.AVAILABLE:Ljdk/internal/net/http/websocket/TransportImpl$ChannelState;
            getstatic jdk.internal.net.http.websocket.TransportImpl$ChannelState.UNREGISTERED:Ljdk/internal/net/http/websocket/TransportImpl$ChannelState;
            invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
            pop
        22: .line 606
            goto 3
        end local 3 // boolean written
        23: .line 609
      StackMap locals:
      StackMap stack:
            new java.io.IOException
            dup
            ldc "Output closed"
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        24: .line 611
      StackMap locals:
      StackMap stack:
            new java.lang.InternalError
            dup
            aload 2 /* ws */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // jdk.internal.net.http.websocket.TransportImpl$ChannelState ws
        25: .line 614
      StackMap locals:
      StackMap stack:
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 27
        26: .line 615
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            ldc "exit writing"
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;)V
        27: .line 617
      StackMap locals:
      StackMap stack:
            iload 1 /* finished */
            ireturn
        end local 1 // boolean finished
        end local 0 // jdk.internal.net.http.websocket.TransportImpl$SendTask this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   28     0      this  Ljdk/internal/net/http/websocket/TransportImpl$SendTask;
            3   28     1  finished  Z
            4   25     2        ws  Ljdk/internal/net/http/websocket/TransportImpl$ChannelState;
           16   23     3   written  Z
    Exceptions:
      throws java.io.IOException

  private void removeAndComplete(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // jdk.internal.net.http.websocket.TransportImpl$SendTask this
        start local 1 // java.lang.Throwable error
         0: .line 622
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            invokeinterface jdk.internal.net.http.common.Logger.on:()Z
            ifeq 2
         1: .line 623
            getstatic jdk.internal.net.http.websocket.TransportImpl.debug:Ljdk/internal/net/http/common/Logger;
            ldc "removeAndComplete error=%s"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* error */
            aastore
            invokeinterface jdk.internal.net.http.common.Logger.log:(Ljava/lang/String;[Ljava/lang/Object;)V
         2: .line 625
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            getfield jdk.internal.net.http.websocket.TransportImpl.queue:Ljdk/internal/net/http/websocket/MessageQueue;
            invokevirtual jdk.internal.net.http.websocket.MessageQueue.remove:()V
         3: .line 626
            aload 1 /* error */
            ifnull 11
         4: .line 628
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.action:Ljava/util/function/BiConsumer;
            aconst_null
            aload 1 /* error */
            invokeinterface java.util.function.BiConsumer.accept:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 629
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: astore 2
         7: .line 630
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.future:Ljava/util/concurrent/CompletableFuture;
            aload 1 /* error */
            invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
            pop
         8: .line 631
            aload 2
            athrow
         9: .line 630
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.future:Ljava/util/concurrent/CompletableFuture;
            aload 1 /* error */
            invokevirtual java.util.concurrent.CompletableFuture.completeExceptionally:(Ljava/lang/Throwable;)Z
            pop
        10: .line 632
            goto 17
        11: .line 634
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.action:Ljava/util/function/BiConsumer;
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.attachment:Ljava/lang/Object;
            aconst_null
            invokeinterface java.util.function.BiConsumer.accept:(Ljava/lang/Object;Ljava/lang/Object;)V
        12: .line 635
            goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 2
        14: .line 636
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.future:Ljava/util/concurrent/CompletableFuture;
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.attachment:Ljava/lang/Object;
            invokevirtual java.util.concurrent.CompletableFuture.complete:(Ljava/lang/Object;)Z
            pop
        15: .line 637
            aload 2
            athrow
        16: .line 636
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.future:Ljava/util/concurrent/CompletableFuture;
            aload 0 /* this */
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.attachment:Ljava/lang/Object;
            invokevirtual java.util.concurrent.CompletableFuture.complete:(Ljava/lang/Object;)Z
            pop
        17: .line 639
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield jdk.internal.net.http.websocket.TransportImpl$SendTask.encoded:Z
        18: .line 640
            aload 0 /* this */
            iconst_1
            putfield jdk.internal.net.http.websocket.TransportImpl$SendTask.firstPass:Z
        19: .line 641
            aload 0 /* this */
            aconst_null
            putfield jdk.internal.net.http.websocket.TransportImpl$SendTask.attachment:Ljava/lang/Object;
        20: .line 642
            aload 0 /* this */
            aconst_null
            putfield jdk.internal.net.http.websocket.TransportImpl$SendTask.action:Ljava/util/function/BiConsumer;
        21: .line 643
            aload 0 /* this */
            aconst_null
            putfield jdk.internal.net.http.websocket.TransportImpl$SendTask.future:Ljava/util/concurrent/CompletableFuture;
        22: .line 644
            return
        end local 1 // java.lang.Throwable error
        end local 0 // jdk.internal.net.http.websocket.TransportImpl$SendTask this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   23     0   this  Ljdk/internal/net/http/websocket/TransportImpl$SendTask;
            0   23     1  error  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           4     6       6  any
          11    13      13  any
    MethodParameters:
       Name  Flags
      error  

  static int[] $SWITCH_TABLE$jdk$internal$net$http$websocket$TransportImpl$ChannelState();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 354
            getstatic jdk.internal.net.http.websocket.TransportImpl$SendTask.$SWITCH_TABLE$jdk$internal$net$http$websocket$TransportImpl$ChannelState:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic jdk.internal.net.http.websocket.TransportImpl$ChannelState.values:()[Ljdk/internal/net/http/websocket/TransportImpl$ChannelState;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic jdk.internal.net.http.websocket.TransportImpl$ChannelState.AVAILABLE:Ljdk/internal/net/http/websocket/TransportImpl$ChannelState;
            invokevirtual jdk.internal.net.http.websocket.TransportImpl$ChannelState.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 jdk.internal.net.http.websocket.TransportImpl$ChannelState.CLOSED:Ljdk/internal/net/http/websocket/TransportImpl$ChannelState;
            invokevirtual jdk.internal.net.http.websocket.TransportImpl$ChannelState.ordinal:()I
            iconst_4
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic jdk.internal.net.http.websocket.TransportImpl$ChannelState.UNREGISTERED:Ljdk/internal/net/http/websocket/TransportImpl$ChannelState;
            invokevirtual jdk.internal.net.http.websocket.TransportImpl$ChannelState.ordinal:()I
            iconst_1
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic jdk.internal.net.http.websocket.TransportImpl$ChannelState.WAITING:Ljdk/internal/net/http/websocket/TransportImpl$ChannelState;
            invokevirtual jdk.internal.net.http.websocket.TransportImpl$ChannelState.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.websocket.TransportImpl$SendTask.$SWITCH_TABLE$jdk$internal$net$http$websocket$TransportImpl$ChannelState:[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

  static jdk.internal.net.http.websocket.TransportImpl access$1(jdk.internal.net.http.websocket.TransportImpl$SendTask);
    descriptor: (Ljdk/internal/net/http/websocket/TransportImpl$SendTask;)Ljdk/internal/net/http/websocket/TransportImpl;
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 354
            aload 0
            getfield jdk.internal.net.http.websocket.TransportImpl$SendTask.this$0:Ljdk/internal/net/http/websocket/TransportImpl;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "TransportImpl.java"
NestHost: jdk.internal.net.http.websocket.TransportImpl
InnerClasses:
  public abstract CompleteRestartableTask = jdk.internal.net.http.common.SequentialScheduler$CompleteRestartableTask of jdk.internal.net.http.common.SequentialScheduler
  public abstract QueueCallback = jdk.internal.net.http.websocket.MessageQueue$QueueCallback of jdk.internal.net.http.websocket.MessageQueue
  public abstract RawEvent = jdk.internal.net.http.websocket.RawChannel$RawEvent of jdk.internal.net.http.websocket.RawChannel
  final ChannelState = jdk.internal.net.http.websocket.TransportImpl$ChannelState of jdk.internal.net.http.websocket.TransportImpl
  private SendTask = jdk.internal.net.http.websocket.TransportImpl$SendTask of jdk.internal.net.http.websocket.TransportImpl
  jdk.internal.net.http.websocket.TransportImpl$SendTask$1
  jdk.internal.net.http.websocket.TransportImpl$SendTask$2