public abstract class org.apache.coyote.ajp.AbstractAjpProtocol<S> extends org.apache.coyote.AbstractProtocol<S>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.apache.coyote.ajp.AbstractAjpProtocol
  super_class: org.apache.coyote.AbstractProtocol
{
  protected static final org.apache.tomcat.util.res.StringManager sm;
    descriptor: Lorg/apache/tomcat/util/res/StringManager;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL

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

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

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

  private java.lang.String secret;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

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

  private java.util.regex.Pattern allowedRequestAttributesPattern;
    descriptor: Ljava/util/regex/Pattern;
    flags: (0x0002) ACC_PRIVATE

  private int packetSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 44
            ldc Lorg/apache/coyote/ajp/AbstractAjpProtocol;
            invokestatic org.apache.tomcat.util.res.StringManager.getManager:(Ljava/lang/Class;)Lorg/apache/tomcat/util/res/StringManager;
            putstatic org.apache.coyote.ajp.AbstractAjpProtocol.sm:Lorg/apache/tomcat/util/res/StringManager;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(org.apache.tomcat.util.net.AbstractEndpoint<S, ?>);
    descriptor: (Lorg/apache/tomcat/util/net/AbstractEndpoint;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
        start local 1 // org.apache.tomcat.util.net.AbstractEndpoint endpoint
         0: .line 48
            aload 0 /* this */
            aload 1 /* endpoint */
            invokespecial org.apache.coyote.AbstractProtocol.<init>:(Lorg/apache/tomcat/util/net/AbstractEndpoint;)V
         1: .line 101
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.ajp.AbstractAjpProtocol.ajpFlush:Z
         2: .line 119
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.ajp.AbstractAjpProtocol.tomcatAuthentication:Z
         3: .line 133
            aload 0 /* this */
            iconst_0
            putfield org.apache.coyote.ajp.AbstractAjpProtocol.tomcatAuthorization:Z
         4: .line 147
            aload 0 /* this */
            aconst_null
            putfield org.apache.coyote.ajp.AbstractAjpProtocol.secret:Ljava/lang/String;
         5: .line 183
            aload 0 /* this */
            iconst_1
            putfield org.apache.coyote.ajp.AbstractAjpProtocol.secretRequired:Z
         6: .line 207
            aload 0 /* this */
            sipush 8192
            putfield org.apache.coyote.ajp.AbstractAjpProtocol.packetSize:I
         7: .line 49
            aload 0 /* this */
            iconst_m1
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.setConnectionTimeout:(I)V
         8: .line 51
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getEndpoint:()Lorg/apache/tomcat/util/net/AbstractEndpoint;
            iconst_0
            invokevirtual org.apache.tomcat.util.net.AbstractEndpoint.setUseSendfile:(Z)V
         9: .line 53
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getEndpoint:()Lorg/apache/tomcat/util/net/AbstractEndpoint;
            invokestatic java.net.InetAddress.getLoopbackAddress:()Ljava/net/InetAddress;
            invokevirtual org.apache.tomcat.util.net.AbstractEndpoint.setAddress:(Ljava/net/InetAddress;)V
        10: .line 54
            new org.apache.coyote.AbstractProtocol$ConnectionHandler
            dup
            aload 0 /* this */
            invokespecial org.apache.coyote.AbstractProtocol$ConnectionHandler.<init>:(Lorg/apache/coyote/AbstractProtocol;)V
            astore 2 /* cHandler */
        start local 2 // org.apache.coyote.AbstractProtocol$ConnectionHandler cHandler
        11: .line 55
            aload 0 /* this */
            aload 2 /* cHandler */
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.setHandler:(Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler;)V
        12: .line 56
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getEndpoint:()Lorg/apache/tomcat/util/net/AbstractEndpoint;
            aload 2 /* cHandler */
            invokevirtual org.apache.tomcat.util.net.AbstractEndpoint.setHandler:(Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler;)V
        13: .line 57
            return
        end local 2 // org.apache.coyote.AbstractProtocol$ConnectionHandler cHandler
        end local 1 // org.apache.tomcat.util.net.AbstractEndpoint endpoint
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     0      this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;
            0   14     1  endpoint  Lorg/apache/tomcat/util/net/AbstractEndpoint<TS;*>;
           11   14     2  cHandler  Lorg/apache/coyote/AbstractProtocol$ConnectionHandler<TS;>;
    Signature: (Lorg/apache/tomcat/util/net/AbstractEndpoint<TS;*>;)V
    MethodParameters:
          Name  Flags
      endpoint  

  protected java.lang.String getProtocolName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
         0: .line 62
            ldc "Ajp"
            areturn
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;

  protected org.apache.tomcat.util.net.AbstractEndpoint<S, ?> getEndpoint();
    descriptor: ()Lorg/apache/tomcat/util/net/AbstractEndpoint;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
         0: .line 73
            aload 0 /* this */
            invokespecial org.apache.coyote.AbstractProtocol.getEndpoint:()Lorg/apache/tomcat/util/net/AbstractEndpoint;
            areturn
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;
    Signature: ()Lorg/apache/tomcat/util/net/AbstractEndpoint<TS;*>;

  protected org.apache.coyote.UpgradeProtocol getNegotiatedProtocol(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/coyote/UpgradeProtocol;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
        start local 1 // java.lang.String name
         0: .line 84
            aconst_null
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  protected org.apache.coyote.UpgradeProtocol getUpgradeProtocol(java.lang.String);
    descriptor: (Ljava/lang/String;)Lorg/apache/coyote/UpgradeProtocol;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
        start local 1 // java.lang.String name
         0: .line 95
            aconst_null
            areturn
        end local 1 // java.lang.String name
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public boolean getAjpFlush();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
         0: .line 102
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AbstractAjpProtocol.ajpFlush:Z
            ireturn
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;

  public void setAjpFlush(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
        start local 1 // boolean ajpFlush
         0: .line 115
            aload 0 /* this */
            iload 1 /* ajpFlush */
            putfield org.apache.coyote.ajp.AbstractAjpProtocol.ajpFlush:Z
         1: .line 116
            return
        end local 1 // boolean ajpFlush
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;
            0    2     1  ajpFlush  Z
    MethodParameters:
          Name  Flags
      ajpFlush  

  public boolean getTomcatAuthentication();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
         0: .line 127
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AbstractAjpProtocol.tomcatAuthentication:Z
            ireturn
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;

  public void setTomcatAuthentication(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
        start local 1 // boolean tomcatAuthentication
         0: .line 129
            aload 0 /* this */
            iload 1 /* tomcatAuthentication */
            putfield org.apache.coyote.ajp.AbstractAjpProtocol.tomcatAuthentication:Z
         1: .line 130
            return
        end local 1 // boolean tomcatAuthentication
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;
            0    2     1  tomcatAuthentication  Z
    MethodParameters:
                      Name  Flags
      tomcatAuthentication  

  public boolean getTomcatAuthorization();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
         0: .line 141
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AbstractAjpProtocol.tomcatAuthorization:Z
            ireturn
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;

  public void setTomcatAuthorization(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
        start local 1 // boolean tomcatAuthorization
         0: .line 143
            aload 0 /* this */
            iload 1 /* tomcatAuthorization */
            putfield org.apache.coyote.ajp.AbstractAjpProtocol.tomcatAuthorization:Z
         1: .line 144
            return
        end local 1 // boolean tomcatAuthorization
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    2     0                 this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;
            0    2     1  tomcatAuthorization  Z
    MethodParameters:
                     Name  Flags
      tomcatAuthorization  

  public void setSecret(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
        start local 1 // java.lang.String secret
         0: .line 154
            aload 0 /* this */
            aload 1 /* secret */
            putfield org.apache.coyote.ajp.AbstractAjpProtocol.secret:Ljava/lang/String;
         1: .line 155
            return
        end local 1 // java.lang.String secret
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;
            0    2     1  secret  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      secret  

  protected java.lang.String getSecret();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
         0: .line 157
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AbstractAjpProtocol.secret:Ljava/lang/String;
            areturn
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;

  public void setRequiredSecret(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
        start local 1 // java.lang.String requiredSecret
         0: .line 169
            aload 0 /* this */
            aload 1 /* requiredSecret */
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.setSecret:(Ljava/lang/String;)V
         1: .line 170
            return
        end local 1 // java.lang.String requiredSecret
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;
            0    2     1  requiredSecret  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
                Name  Flags
      requiredSecret  

  protected java.lang.String getRequiredSecret();
    descriptor: ()Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
         0: .line 179
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getSecret:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public void setSecretRequired(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
        start local 1 // boolean secretRequired
         0: .line 185
            aload 0 /* this */
            iload 1 /* secretRequired */
            putfield org.apache.coyote.ajp.AbstractAjpProtocol.secretRequired:Z
         1: .line 186
            return
        end local 1 // boolean secretRequired
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;
            0    2     1  secretRequired  Z
    MethodParameters:
                Name  Flags
      secretRequired  

  public boolean getSecretRequired();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
         0: .line 188
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AbstractAjpProtocol.secretRequired:Z
            ireturn
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;

  public void setAllowedRequestAttributesPattern(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
        start local 1 // java.lang.String allowedRequestAttributesPattern
         0: .line 194
            aload 0 /* this */
            aload 1 /* allowedRequestAttributesPattern */
            invokestatic java.util.regex.Pattern.compile:(Ljava/lang/String;)Ljava/util/regex/Pattern;
            putfield org.apache.coyote.ajp.AbstractAjpProtocol.allowedRequestAttributesPattern:Ljava/util/regex/Pattern;
         1: .line 195
            return
        end local 1 // java.lang.String allowedRequestAttributesPattern
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot                             Name  Signature
            0    2     0                             this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;
            0    2     1  allowedRequestAttributesPattern  Ljava/lang/String;
    MethodParameters:
                                 Name  Flags
      allowedRequestAttributesPattern  

  public java.lang.String getAllowedRequestAttributesPattern();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
         0: .line 197
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AbstractAjpProtocol.allowedRequestAttributesPattern:Ljava/util/regex/Pattern;
            invokevirtual java.util.regex.Pattern.pattern:()Ljava/lang/String;
            areturn
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;

  protected java.util.regex.Pattern getAllowedRequestAttributesPatternInternal();
    descriptor: ()Ljava/util/regex/Pattern;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
         0: .line 200
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AbstractAjpProtocol.allowedRequestAttributesPattern:Ljava/util/regex/Pattern;
            areturn
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;

  public int getPacketSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
         0: .line 208
            aload 0 /* this */
            getfield org.apache.coyote.ajp.AbstractAjpProtocol.packetSize:I
            ireturn
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;

  public void setPacketSize(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
        start local 1 // int packetSize
         0: .line 210
            iload 1 /* packetSize */
            sipush 8192
            if_icmpge 3
         1: .line 211
            aload 0 /* this */
            sipush 8192
            putfield org.apache.coyote.ajp.AbstractAjpProtocol.packetSize:I
         2: .line 212
            goto 4
         3: .line 213
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* packetSize */
            putfield org.apache.coyote.ajp.AbstractAjpProtocol.packetSize:I
         4: .line 215
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int packetSize
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;
            0    5     1  packetSize  I
    MethodParameters:
            Name  Flags
      packetSize  

  public int getDesiredBufferSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
         0: .line 220
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getPacketSize:()I
            bipush 8
            isub
            ireturn
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;

  public void addSslHostConfig(org.apache.tomcat.util.net.SSLHostConfig);
    descriptor: (Lorg/apache/tomcat/util/net/SSLHostConfig;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
        start local 1 // org.apache.tomcat.util.net.SSLHostConfig sslHostConfig
         0: .line 228
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getLog:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.coyote.ajp.AbstractAjpProtocol.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "ajpprotocol.noSSL"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* sslHostConfig */
            invokevirtual org.apache.tomcat.util.net.SSLHostConfig.getHostName:()Ljava/lang/String;
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
         1: .line 229
            return
        end local 1 // org.apache.tomcat.util.net.SSLHostConfig sslHostConfig
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;
            0    2     1  sslHostConfig  Lorg/apache/tomcat/util/net/SSLHostConfig;
    MethodParameters:
               Name  Flags
      sslHostConfig  

  public org.apache.tomcat.util.net.SSLHostConfig[] findSslHostConfigs();
    descriptor: ()[Lorg/apache/tomcat/util/net/SSLHostConfig;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
         0: .line 234
            iconst_0
            anewarray org.apache.tomcat.util.net.SSLHostConfig
            areturn
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;

  public void addUpgradeProtocol(org.apache.coyote.UpgradeProtocol);
    descriptor: (Lorg/apache/coyote/UpgradeProtocol;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
        start local 1 // org.apache.coyote.UpgradeProtocol upgradeProtocol
         0: .line 240
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getLog:()Lorg/apache/juli/logging/Log;
            getstatic org.apache.coyote.ajp.AbstractAjpProtocol.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "ajpprotocol.noUpgrade"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* upgradeProtocol */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface org.apache.juli.logging.Log.warn:(Ljava/lang/Object;)V
         1: .line 241
            return
        end local 1 // org.apache.coyote.UpgradeProtocol upgradeProtocol
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;
            0    2     1  upgradeProtocol  Lorg/apache/coyote/UpgradeProtocol;
    MethodParameters:
                 Name  Flags
      upgradeProtocol  

  public org.apache.coyote.UpgradeProtocol[] findUpgradeProtocols();
    descriptor: ()[Lorg/apache/coyote/UpgradeProtocol;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
         0: .line 246
            iconst_0
            anewarray org.apache.coyote.UpgradeProtocol
            areturn
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;

  protected org.apache.coyote.Processor createProcessor();
    descriptor: ()Lorg/apache/coyote/Processor;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
         0: .line 252
            new org.apache.coyote.ajp.AjpProcessor
            dup
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getAdapter:()Lorg/apache/coyote/Adapter;
            invokespecial org.apache.coyote.ajp.AjpProcessor.<init>:(Lorg/apache/coyote/ajp/AbstractAjpProtocol;Lorg/apache/coyote/Adapter;)V
            astore 1 /* processor */
        start local 1 // org.apache.coyote.ajp.AjpProcessor processor
         1: .line 253
            aload 1 /* processor */
            areturn
        end local 1 // org.apache.coyote.ajp.AjpProcessor processor
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;
            1    2     1  processor  Lorg/apache/coyote/ajp/AjpProcessor;

  protected org.apache.coyote.Processor createUpgradeProcessor(org.apache.tomcat.util.net.SocketWrapperBase<?>, org.apache.coyote.UpgradeToken);
    descriptor: (Lorg/apache/tomcat/util/net/SocketWrapperBase;Lorg/apache/coyote/UpgradeToken;)Lorg/apache/coyote/Processor;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=8, locals=3, args_size=3
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
        start local 1 // org.apache.tomcat.util.net.SocketWrapperBase socket
        start local 2 // org.apache.coyote.UpgradeToken upgradeToken
         0: .line 260
            new java.lang.IllegalStateException
            dup
            getstatic org.apache.coyote.ajp.AbstractAjpProtocol.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "ajpprotocol.noUpgradeHandler"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
         1: .line 261
            aload 2 /* upgradeToken */
            invokevirtual org.apache.coyote.UpgradeToken.getHttpUpgradeHandler:()Ljakarta/servlet/http/HttpUpgradeHandler;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
         2: .line 260
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // org.apache.coyote.UpgradeToken upgradeToken
        end local 1 // org.apache.tomcat.util.net.SocketWrapperBase socket
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;
            0    3     1        socket  Lorg/apache/tomcat/util/net/SocketWrapperBase<*>;
            0    3     2  upgradeToken  Lorg/apache/coyote/UpgradeToken;
    Signature: (Lorg/apache/tomcat/util/net/SocketWrapperBase<*>;Lorg/apache/coyote/UpgradeToken;)Lorg/apache/coyote/Processor;
    MethodParameters:
              Name  Flags
      socket        
      upgradeToken  

  public void start();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
         0: .line 267
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getSecretRequired:()Z
            ifeq 4
         1: .line 268
            aload 0 /* this */
            invokevirtual org.apache.coyote.ajp.AbstractAjpProtocol.getSecret:()Ljava/lang/String;
            astore 1 /* secret */
        start local 1 // java.lang.String secret
         2: .line 269
            aload 1 /* secret */
            ifnull 3
            aload 1 /* secret */
            invokevirtual java.lang.String.length:()I
            ifne 4
         3: .line 270
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            getstatic org.apache.coyote.ajp.AbstractAjpProtocol.sm:Lorg/apache/tomcat/util/res/StringManager;
            ldc "ajpprotocol.noSecret"
            invokevirtual org.apache.tomcat.util.res.StringManager.getString:(Ljava/lang/String;)Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.String secret
         4: .line 273
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial org.apache.coyote.AbstractProtocol.start:()V
         5: .line 274
            return
        end local 0 // org.apache.coyote.ajp.AbstractAjpProtocol this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lorg/apache/coyote/ajp/AbstractAjpProtocol<TS;>;
            2    4     1  secret  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
}
Signature: <S:Ljava/lang/Object;>Lorg/apache/coyote/AbstractProtocol<TS;>;
SourceFile: "AbstractAjpProtocol.java"
InnerClasses:
  protected ConnectionHandler = org.apache.coyote.AbstractProtocol$ConnectionHandler of org.apache.coyote.AbstractProtocol
  public abstract Handler = org.apache.tomcat.util.net.AbstractEndpoint$Handler of org.apache.tomcat.util.net.AbstractEndpoint