public class org.apache.coyote.http11.upgrade.UpgradeServletOutputStream extends jakarta.servlet.ServletOutputStream
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.coyote.http11.upgrade.UpgradeServletOutputStream
  super_class: jakarta.servlet.ServletOutputStream
{
  private static final org.apache.juli.logging.Log log;
    descriptor: Lorg/apache/juli/logging/Log;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.apache.tomcat.util.res.StringManager sm;
    descriptor: Lorg/apache/tomcat/util/res/StringManager;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.apache.coyote.http11.upgrade.UpgradeProcessorBase processor;
    descriptor: Lorg/apache/coyote/http11/upgrade/UpgradeProcessorBase;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.tomcat.util.net.SocketWrapperBase<?> socketWrapper;
    descriptor: Lorg/apache/tomcat/util/net/SocketWrapperBase;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/apache/tomcat/util/net/SocketWrapperBase<*>;

  private final org.apache.coyote.http11.upgrade.UpgradeInfo upgradeInfo;
    descriptor: Lorg/apache/coyote/http11/upgrade/UpgradeInfo;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object registeredLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object writeLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private volatile boolean flushing;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile boolean closed;
    descriptor: Z
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private volatile jakarta.servlet.WriteListener listener;
    descriptor: Ljakarta/servlet/WriteListener;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 34
            ldc Lorg/apache/coyote/http11/upgrade/UpgradeServletOutputStream;
            invokestatic org.apache.juli.logging.LogFactory.getLog:(Ljava/lang/Class;)Lorg/apache/juli/logging/Log;
            putstatic org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.log:Lorg/apache/juli/logging/Log;
         1: .line 36
            ldc Lorg/apache/coyote/http11/upgrade/UpgradeServletOutputStream;
            invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager;
         2: .line 35
            putstatic org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.sm:Lorg/apache/tomcat/util/res/StringManager;
         3: .line 36
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.apache.coyote.http11.upgrade.UpgradeProcessorBase, org.apache.tomcat.util.net.SocketWrapperBase<?>, org.apache.coyote.http11.upgrade.UpgradeInfo);
    descriptor: (Lorg/apache/coyote/http11/upgrade/UpgradeProcessorBase;Lorg/apache/tomcat/util/net/SocketWrapperBase;Lorg/apache/coyote/http11/upgrade/UpgradeInfo;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
        start local 1 // org.apache.coyote.http11.upgrade.UpgradeProcessorBase processor
        start local 2 // org.apache.tomcat.util.net.SocketWrapperBase socketWrapper
        start local 3 // org.apache.coyote.http11.upgrade.UpgradeInfo upgradeInfo
         0: .line 65
            aload 0 /* this */
            invokespecial jakarta.servlet.ServletOutputStream.<init>:()V
         1: .line 44
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.registeredLock:Ljava/lang/Object;
         2: .line 51
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.writeLock:Ljava/lang/Object;
         3: .line 53
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.flushing:Z
         4: .line 55
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.closed:Z
         5: .line 58
            aload 0 /* this */
            aconst_null
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.listener:Ljakarta/servlet/WriteListener;
         6: .line 61
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.registered:Z
         7: .line 67
            aload 0 /* this */
            aload 1 /* processor */
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.processor:Lorg/apache/coyote/http11/upgrade/UpgradeProcessorBase;
         8: .line 68
            aload 0 /* this */
            aload 2 /* socketWrapper */
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
         9: .line 69
            aload 0 /* this */
            aload 3 /* upgradeInfo */
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.upgradeInfo:Lorg/apache/coyote/http11/upgrade/UpgradeInfo;
        10: .line 70
            return
        end local 3 // org.apache.coyote.http11.upgrade.UpgradeInfo upgradeInfo
        end local 2 // org.apache.tomcat.util.net.SocketWrapperBase socketWrapper
        end local 1 // org.apache.coyote.http11.upgrade.UpgradeProcessorBase processor
        end local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Lorg/apache/coyote/http11/upgrade/UpgradeServletOutputStream;
            0   11     1      processor  Lorg/apache/coyote/http11/upgrade/UpgradeProcessorBase;
            0   11     2  socketWrapper  Lorg/apache/tomcat/util/net/SocketWrapperBase<*>;
            0   11     3    upgradeInfo  Lorg/apache/coyote/http11/upgrade/UpgradeInfo;
    Signature: (Lorg/apache/coyote/http11/upgrade/UpgradeProcessorBase;Lorg/apache/tomcat/util/net/SocketWrapperBase<*>;Lorg/apache/coyote/http11/upgrade/UpgradeInfo;)V
    MethodParameters:
               Name  Flags
      processor      
      socketWrapper  
      upgradeInfo    

  public final boolean isReady();
    descriptor: ()Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
         0: .line 75
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.listener:Ljakarta/servlet/WriteListener;
            ifnonnull 4
         1: .line 76
            new java.lang.IllegalStateException
            dup
         2: .line 77
            getstatic org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "upgrade.sos.canWrite.ise"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
         3: .line 76
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 79
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.closed:Z
            ifeq 6
         5: .line 80
            iconst_0
            ireturn
         6: .line 85
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.registeredLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         7: .line 86
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.flushing:Z
            ifeq 11
         8: .line 89
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.registered:Z
         9: .line 90
            aload 1
            monitorexit
        10: iconst_0
            ireturn
        11: .line 91
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.registered:Z
            ifeq 14
        12: .line 94
            aload 1
            monitorexit
        13: iconst_0
            ireturn
        14: .line 96
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.isReadyForWrite:()Z
            istore 2 /* result */
        start local 2 // boolean result
        15: .line 97
            aload 0 /* this */
            iload 2 /* result */
            ifeq 16
            iconst_0
            goto 17
      StackMap locals: org.apache.coyote.http11.upgrade.UpgradeServletOutputStream java.lang.Object int
      StackMap stack: org.apache.coyote.http11.upgrade.UpgradeServletOutputStream
        16: iconst_1
      StackMap locals: org.apache.coyote.http11.upgrade.UpgradeServletOutputStream java.lang.Object int
      StackMap stack: org.apache.coyote.http11.upgrade.UpgradeServletOutputStream int
        17: putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.registered:Z
        18: .line 98
            iload 2 /* result */
            aload 1
            monitorexit
        19: ireturn
        end local 2 // boolean result
        20: .line 85
      StackMap locals: org.apache.coyote.http11.upgrade.UpgradeServletOutputStream java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        21: athrow
        end local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   22     0    this  Lorg/apache/coyote/http11/upgrade/UpgradeServletOutputStream;
           15   20     2  result  Z
      Exception table:
        from    to  target  type
           7    10      20  any
          11    13      20  any
          14    19      20  any
          20    21      20  any

  public final void setWriteListener(jakarta.servlet.WriteListener);
    descriptor: (Ljakarta/servlet/WriteListener;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
        start local 1 // jakarta.servlet.WriteListener listener
         0: .line 106
            aload 1 /* listener */
            ifnonnull 4
         1: .line 107
            new java.lang.IllegalArgumentException
            dup
         2: .line 108
            getstatic org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "upgrade.sos.writeListener.null"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
         3: .line 107
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 110
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.listener:Ljakarta/servlet/WriteListener;
            ifnull 8
         5: .line 111
            new java.lang.IllegalArgumentException
            dup
         6: .line 112
            getstatic org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "upgrade.sos.writeListener.set"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
         7: .line 111
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 114
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.closed:Z
            ifeq 10
         9: .line 115
            new java.lang.IllegalStateException
            dup
            getstatic org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "upgrade.sos.write.closed"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 117
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* listener */
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.listener:Ljakarta/servlet/WriteListener;
        11: .line 119
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.registeredLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
        12: .line 120
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.registered:Z
        13: .line 122
            invokestatic org.apache.coyote.ContainerThreadMarker.isContainerThread:()Z
            ifeq 16
        14: .line 123
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.processor:Lorg/apache/coyote/http11/upgrade/UpgradeProcessorBase;
            getstatic org.apache.tomcat.util.net.DispatchType.NON_BLOCKING_WRITE:Lorg/apache/tomcat/util/net/DispatchType;
            invokevirtual org.apache.coyote.http11.upgrade.UpgradeProcessorBase.addDispatch:(Lorg/apache/tomcat/util/net/DispatchType;)V
        15: .line 124
            goto 17
        16: .line 125
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.registerWriteInterest:()V
        17: .line 119
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        18: goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: aload 2
            monitorexit
        20: athrow
        21: .line 129
      StackMap locals:
      StackMap stack:
            return
        end local 1 // jakarta.servlet.WriteListener listener
        end local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   22     0      this  Lorg/apache/coyote/http11/upgrade/UpgradeServletOutputStream;
            0   22     1  listener  Ljakarta/servlet/WriteListener;
      Exception table:
        from    to  target  type
          12    18      19  any
          19    20      19  any
    MethodParameters:
          Name  Flags
      listener  

  final boolean isClosed();
    descriptor: ()Z
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
         0: .line 133
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.closed:Z
            ireturn
        end local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/coyote/http11/upgrade/UpgradeServletOutputStream;

  public void write(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
        start local 1 // int b
         0: .line 139
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.writeLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 140
            aload 0 /* this */
            invokevirtual org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.preWriteChecks:()V
         2: .line 141
            aload 0 /* this */
            iconst_1
            newarray 8
            dup
            iconst_0
            iload 1 /* b */
            i2b
            bastore
            iconst_0
            iconst_1
            invokevirtual org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.writeInternal:([BII)V
         3: .line 139
            aload 2
            monitorexit
         4: goto 7
      StackMap locals: org.apache.coyote.http11.upgrade.UpgradeServletOutputStream int java.lang.Object
      StackMap stack: java.lang.Throwable
         5: aload 2
            monitorexit
         6: athrow
         7: .line 143
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int b
        end local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/apache/coyote/http11/upgrade/UpgradeServletOutputStream;
            0    8     1     b  I
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     

  public void write(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
        start local 1 // byte[] b
        start local 2 // int off
        start local 3 // int len
         0: .line 148
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.writeLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         1: .line 149
            aload 0 /* this */
            invokevirtual org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.preWriteChecks:()V
         2: .line 150
            aload 0 /* this */
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.writeInternal:([BII)V
         3: .line 148
            aload 4
            monitorexit
         4: goto 7
      StackMap locals: org.apache.coyote.http11.upgrade.UpgradeServletOutputStream byte[] int int java.lang.Object
      StackMap stack: java.lang.Throwable
         5: aload 4
            monitorexit
         6: athrow
         7: .line 152
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] b
        end local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/apache/coyote/http11/upgrade/UpgradeServletOutputStream;
            0    8     1     b  [B
            0    8     2   off  I
            0    8     3   len  I
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     
      off   
      len   

  public void flush();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
         0: .line 157
            aload 0 /* this */
            invokevirtual org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.preWriteChecks:()V
         1: .line 158
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.listener:Ljakarta/servlet/WriteListener;
            ifnonnull 2
            iconst_1
            goto 3
      StackMap locals:
      StackMap stack: org.apache.coyote.http11.upgrade.UpgradeServletOutputStream
         2: iconst_0
      StackMap locals: org.apache.coyote.http11.upgrade.UpgradeServletOutputStream
      StackMap stack: org.apache.coyote.http11.upgrade.UpgradeServletOutputStream int
         3: iconst_1
            invokevirtual org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.flushInternal:(ZZ)V
         4: .line 159
            return
        end local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/coyote/http11/upgrade/UpgradeServletOutputStream;
    Exceptions:
      throws java.io.IOException

  private void flushInternal(boolean, boolean);
    descriptor: (ZZ)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
        start local 1 // boolean block
        start local 2 // boolean updateFlushing
         0: .line 164
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.writeLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 165
            iload 2 /* updateFlushing */
            ifeq 6
         2: .line 166
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            iload 1 /* block */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.flush:(Z)Z
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.flushing:Z
         3: .line 167
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.flushing:Z
            ifeq 7
         4: .line 168
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.registerWriteInterest:()V
         5: .line 170
            goto 7
         6: .line 171
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            iload 1 /* block */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.flush:(Z)Z
            pop
         7: .line 164
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
         8: goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 3
            monitorexit
        10: athrow
        11: .line 174
      StackMap locals: org.apache.coyote.http11.upgrade.UpgradeServletOutputStream int int
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
        12: .line 175
            aload 3 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        13: .line 176
            aload 0 /* this */
            aload 3 /* t */
            invokevirtual org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.onError:(Ljava/lang/Throwable;)V
        14: .line 177
            aload 3 /* t */
            instanceof java.io.IOException
            ifeq 16
        15: .line 178
            aload 3 /* t */
            checkcast java.io.IOException
            athrow
        16: .line 180
      StackMap locals: java.lang.Throwable
      StackMap stack:
            new java.io.IOException
            dup
            aload 3 /* t */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Throwable t
        17: .line 183
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean updateFlushing
        end local 1 // boolean block
        end local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0            this  Lorg/apache/coyote/http11/upgrade/UpgradeServletOutputStream;
            0   18     1           block  Z
            0   18     2  updateFlushing  Z
           12   17     3               t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           1     8       9  any
           9    10       9  any
           0    11      11  Class java.lang.Throwable
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      block           
      updateFlushing  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
         0: .line 187
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.closed:Z
            ifeq 2
         1: .line 188
            return
         2: .line 190
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.closed:Z
         3: .line 191
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.listener:Ljakarta/servlet/WriteListener;
            ifnonnull 4
            iconst_1
            goto 5
      StackMap locals:
      StackMap stack: org.apache.coyote.http11.upgrade.UpgradeServletOutputStream
         4: iconst_0
      StackMap locals: org.apache.coyote.http11.upgrade.UpgradeServletOutputStream
      StackMap stack: org.apache.coyote.http11.upgrade.UpgradeServletOutputStream int
         5: iconst_0
            invokevirtual org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.flushInternal:(ZZ)V
         6: .line 192
            return
        end local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/apache/coyote/http11/upgrade/UpgradeServletOutputStream;
    Exceptions:
      throws java.io.IOException

  private void preWriteChecks();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
         0: .line 196
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.listener:Ljakarta/servlet/WriteListener;
            ifnull 2
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.canWrite:()Z
            ifne 2
         1: .line 197
            new java.lang.IllegalStateException
            dup
            getstatic org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "upgrade.sos.write.ise"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 199
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.closed:Z
            ifeq 4
         3: .line 200
            new java.lang.IllegalStateException
            dup
            getstatic org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "upgrade.sos.write.closed"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 202
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/apache/coyote/http11/upgrade/UpgradeServletOutputStream;

  private void writeInternal(byte[], int, int);
    descriptor: ([BII)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
        start local 1 // byte[] b
        start local 2 // int off
        start local 3 // int len
         0: .line 209
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.listener:Ljakarta/servlet/WriteListener;
            ifnonnull 3
         1: .line 211
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            iconst_1
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.write:(Z[BII)V
         2: .line 212
            goto 4
         3: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
            iconst_0
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual org.apache.tomcat.util.net.SocketWrapperBase.write:(Z[BII)V
         4: .line 215
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.upgradeInfo:Lorg/apache/coyote/http11/upgrade/UpgradeInfo;
            iload 3 /* len */
            i2l
            invokevirtual org.apache.coyote.http11.upgrade.UpgradeInfo.addBytesSent:(J)V
         5: .line 216
            return
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] b
        end local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/coyote/http11/upgrade/UpgradeServletOutputStream;
            0    6     1     b  [B
            0    6     2   off  I
            0    6     3   len  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     
      off   
      len   

  final void onWritePossible();
    descriptor: ()V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
         0: .line 251
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tThe method getContextBind() from the type UpgradeToken refers to the missing type ContextBind\n\tThe method getContextBind() from the type UpgradeToken refers to the missing type ContextBind\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/coyote/http11/upgrade/UpgradeServletOutputStream;

  private final void onError(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
         0: .line 268
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tThe method getContextBind() from the type UpgradeToken refers to the missing type ContextBind\n\tThe method getContextBind() from the type UpgradeToken refers to the missing type ContextBind\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.apache.coyote.http11.upgrade.UpgradeServletOutputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/coyote/http11/upgrade/UpgradeServletOutputStream;
    MethodParameters:
      Name  Flags
      t     
}
SourceFile: "UpgradeServletOutputStream.java"