public class org.apache.coyote.http11.upgrade.UpgradeServletOutputStream extends javax.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: javax.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 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 javax.servlet.WriteListener listener;
    descriptor: Ljavax/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<?>);
    descriptor: (Lorg/apache/coyote/http11/upgrade/UpgradeProcessorBase;Lorg/apache/tomcat/util/net/SocketWrapperBase;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        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
         0: .line 64
            aload 0 /* this */
            invokespecial javax.servlet.ServletOutputStream.<init>:()V
         1: .line 43
            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 50
            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 52
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.flushing:Z
         4: .line 54
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.closed:Z
         5: .line 57
            aload 0 /* this */
            aconst_null
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.listener:Ljavax/servlet/WriteListener;
         6: .line 60
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.registered:Z
         7: .line 66
            aload 0 /* this */
            aload 1 /* processor */
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.processor:Lorg/apache/coyote/http11/upgrade/UpgradeProcessorBase;
         8: .line 67
            aload 0 /* this */
            aload 2 /* socketWrapper */
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.socketWrapper:Lorg/apache/tomcat/util/net/SocketWrapperBase;
         9: .line 68
            return
        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   10     0           this  Lorg/apache/coyote/http11/upgrade/UpgradeServletOutputStream;
            0   10     1      processor  Lorg/apache/coyote/http11/upgrade/UpgradeProcessorBase;
            0   10     2  socketWrapper  Lorg/apache/tomcat/util/net/SocketWrapperBase<*>;
    Signature: (Lorg/apache/coyote/http11/upgrade/UpgradeProcessorBase;Lorg/apache/tomcat/util/net/SocketWrapperBase<*>;)V
    MethodParameters:
               Name  Flags
      processor      
      socketWrapper  

  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 73
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.listener:Ljavax/servlet/WriteListener;
            ifnonnull 4
         1: .line 74
            new java.lang.IllegalStateException
            dup
         2: .line 75
            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 74
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 77
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.closed:Z
            ifeq 6
         5: .line 78
            iconst_0
            ireturn
         6: .line 83
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.registeredLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         7: .line 84
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.flushing:Z
            ifeq 11
         8: .line 87
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.registered:Z
         9: .line 88
            aload 1
            monitorexit
        10: iconst_0
            ireturn
        11: .line 89
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.registered:Z
            ifeq 14
        12: .line 92
            aload 1
            monitorexit
        13: iconst_0
            ireturn
        14: .line 94
      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 95
            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 96
            iload 2 /* result */
            aload 1
            monitorexit
        19: ireturn
        end local 2 // boolean result
        20: .line 83
      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(javax.servlet.WriteListener);
    descriptor: (Ljavax/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 // javax.servlet.WriteListener listener
         0: .line 104
            aload 1 /* listener */
            ifnonnull 4
         1: .line 105
            new java.lang.IllegalArgumentException
            dup
         2: .line 106
            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 105
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 108
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.listener:Ljavax/servlet/WriteListener;
            ifnull 8
         5: .line 109
            new java.lang.IllegalArgumentException
            dup
         6: .line 110
            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 109
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 112
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.closed:Z
            ifeq 10
         9: .line 113
            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 115
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* listener */
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.listener:Ljavax/servlet/WriteListener;
        11: .line 117
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.registeredLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
        12: .line 118
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.registered:Z
        13: .line 120
            invokestatic org.apache.coyote.ContainerThreadMarker.isContainerThread:()Z
            ifeq 16
        14: .line 121
            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 122
            goto 17
        16: .line 123
      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 117
      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 127
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.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  Ljavax/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 131
            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 137
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.writeLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 138
            aload 0 /* this */
            invokevirtual org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.preWriteChecks:()V
         2: .line 139
            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 137
            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 141
      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 146
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.writeLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         1: .line 147
            aload 0 /* this */
            invokevirtual org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.preWriteChecks:()V
         2: .line 148
            aload 0 /* this */
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
            invokevirtual org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.writeInternal:([BII)V
         3: .line 146
            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 150
      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 155
            aload 0 /* this */
            invokevirtual org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.preWriteChecks:()V
         1: .line 156
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.listener:Ljavax/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 157
            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 162
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.writeLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         1: .line 163
            iload 2 /* updateFlushing */
            ifeq 6
         2: .line 164
            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 165
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.flushing:Z
            ifeq 7
         4: .line 166
            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 168
            goto 7
         6: .line 169
      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 162
      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 172
      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 173
            aload 3 /* t */
            invokestatic org.apache.tomcat.util.ExceptionUtils.handleThrowable:(Ljava/lang/Throwable;)V
        13: .line 174
            aload 0 /* this */
            aload 3 /* t */
            invokevirtual org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.onError:(Ljava/lang/Throwable;)V
        14: .line 175
            aload 3 /* t */
            instanceof java.io.IOException
            ifeq 16
        15: .line 176
            aload 3 /* t */
            checkcast java.io.IOException
            athrow
        16: .line 178
      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 181
      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 185
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.closed:Z
            ifeq 2
         1: .line 186
            return
         2: .line 188
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.closed:Z
         3: .line 189
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.listener:Ljavax/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 190
            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 194
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.listener:Ljavax/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 195
            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 197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.closed:Z
            ifeq 4
         3: .line 198
            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 200
      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 207
            aload 0 /* this */
            getfield org.apache.coyote.http11.upgrade.UpgradeServletOutputStream.listener:Ljavax/servlet/WriteListener;
            ifnonnull 3
         1: .line 209
            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 210
            goto 4
         3: .line 211
      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 213
      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    5     0  this  Lorg/apache/coyote/http11/upgrade/UpgradeServletOutputStream;
            0    5     1     b  [B
            0    5     2   off  I
            0    5     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 248
            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 265
            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"