public class org.glassfish.grizzly.ssl.SSLBaseFilter extends org.glassfish.grizzly.filterchain.BaseFilter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.glassfish.grizzly.ssl.SSLBaseFilter
  super_class: org.glassfish.grizzly.filterchain.BaseFilter
{
  private static final java.util.logging.Logger LOGGER;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  protected static final org.glassfish.grizzly.asyncqueue.MessageCloner<org.glassfish.grizzly.Buffer> COPY_CLONER;
    descriptor: Lorg/glassfish/grizzly/asyncqueue/MessageCloner;
    flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
    Signature: Lorg/glassfish/grizzly/asyncqueue/MessageCloner<Lorg/glassfish/grizzly/Buffer;>;

  private static final org.glassfish.grizzly.ssl.SSLConnectionContext$Allocator MM_ALLOCATOR;
    descriptor: Lorg/glassfish/grizzly/ssl/SSLConnectionContext$Allocator;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.glassfish.grizzly.ssl.SSLConnectionContext$Allocator OUTPUT_BUFFER_ALLOCATOR;
    descriptor: Lorg/glassfish/grizzly/ssl/SSLConnectionContext$Allocator;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final org.glassfish.grizzly.ssl.SSLEngineConfigurator serverSSLEngineConfigurator;
    descriptor: Lorg/glassfish/grizzly/ssl/SSLEngineConfigurator;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean renegotiateOnClientAuthWant;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  protected final java.util.Set<org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener> handshakeListeners;
    descriptor: Ljava/util/Set;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL
    Signature: Ljava/util/Set<Lorg/glassfish/grizzly/ssl/SSLBaseFilter$HandshakeListener;>;

  private long handshakeTimeoutMillis;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private org.glassfish.grizzly.ssl.SSLBaseFilter$SSLTransportFilterWrapper optimizedTransportFilter;
    descriptor: Lorg/glassfish/grizzly/ssl/SSLBaseFilter$SSLTransportFilterWrapper;
    flags: (0x0002) ACC_PRIVATE

  private static volatile int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  private static volatile int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 75
            ldc Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            invokestatic org.glassfish.grizzly.Grizzly.logger:(Ljava/lang/Class;)Ljava/util/logging/Logger;
            putstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
         1: .line 76
            new org.glassfish.grizzly.ssl.SSLBaseFilter$OnWriteCopyCloner
            dup
            invokespecial org.glassfish.grizzly.ssl.SSLBaseFilter$OnWriteCopyCloner.<init>:()V
            putstatic org.glassfish.grizzly.ssl.SSLBaseFilter.COPY_CLONER:Lorg/glassfish/grizzly/asyncqueue/MessageCloner;
         2: .line 78
            new org.glassfish.grizzly.ssl.SSLBaseFilter$1
            dup
            invokespecial org.glassfish.grizzly.ssl.SSLBaseFilter$1.<init>:()V
            putstatic org.glassfish.grizzly.ssl.SSLBaseFilter.MM_ALLOCATOR:Lorg/glassfish/grizzly/ssl/SSLConnectionContext$Allocator;
         3: .line 92
            new org.glassfish.grizzly.ssl.SSLBaseFilter$2
            dup
            invokespecial org.glassfish.grizzly.ssl.SSLBaseFilter$2.<init>:()V
         4: .line 91
            putstatic org.glassfish.grizzly.ssl.SSLBaseFilter.OUTPUT_BUFFER_ALLOCATOR:Lorg/glassfish/grizzly/ssl/SSLConnectionContext$Allocator;
         5: .line 99
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
         0: .line 116
            aload 0 /* this */
            aconst_null
            invokespecial org.glassfish.grizzly.ssl.SSLBaseFilter.<init>:(Lorg/glassfish/grizzly/ssl/SSLEngineConfigurator;)V
         1: .line 117
            return
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;

  public void <init>(org.glassfish.grizzly.ssl.SSLEngineConfigurator);
    descriptor: (Lorg/glassfish/grizzly/ssl/SSLEngineConfigurator;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.ssl.SSLEngineConfigurator serverSSLEngineConfigurator
         0: .line 125
            aload 0 /* this */
            aload 1 /* serverSSLEngineConfigurator */
            iconst_1
            invokespecial org.glassfish.grizzly.ssl.SSLBaseFilter.<init>:(Lorg/glassfish/grizzly/ssl/SSLEngineConfigurator;Z)V
         1: .line 126
            return
        end local 1 // org.glassfish.grizzly.ssl.SSLEngineConfigurator serverSSLEngineConfigurator
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0    2     0                         this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    2     1  serverSSLEngineConfigurator  Lorg/glassfish/grizzly/ssl/SSLEngineConfigurator;
    MethodParameters:
                             Name  Flags
      serverSSLEngineConfigurator  

  public void <init>(org.glassfish.grizzly.ssl.SSLEngineConfigurator, boolean);
    descriptor: (Lorg/glassfish/grizzly/ssl/SSLEngineConfigurator;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.ssl.SSLEngineConfigurator serverSSLEngineConfigurator
        start local 2 // boolean renegotiateOnClientAuthWant
         0: .line 139
            aload 0 /* this */
            invokespecial org.glassfish.grizzly.filterchain.BaseFilter.<init>:()V
         1: .line 105
            aload 0 /* this */
         2: .line 106
            new java.util.concurrent.ConcurrentHashMap
            dup
            iconst_2
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
            invokestatic java.util.Collections.newSetFromMap:(Ljava/util/Map;)Ljava/util/Set;
            putfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeListeners:Ljava/util/Set;
         3: .line 108
            aload 0 /* this */
            ldc -1
            putfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeTimeoutMillis:J
         4: .line 142
            aload 0 /* this */
            iload 2 /* renegotiateOnClientAuthWant */
            putfield org.glassfish.grizzly.ssl.SSLBaseFilter.renegotiateOnClientAuthWant:Z
         5: .line 143
            aload 0 /* this */
         6: .line 144
            aload 1 /* serverSSLEngineConfigurator */
            ifnull 8
         7: .line 145
            aload 1 /* serverSSLEngineConfigurator */
            goto 14
         8: .line 146
      StackMap locals: org.glassfish.grizzly.ssl.SSLBaseFilter org.glassfish.grizzly.ssl.SSLEngineConfigurator int
      StackMap stack: org.glassfish.grizzly.ssl.SSLBaseFilter
            new org.glassfish.grizzly.ssl.SSLEngineConfigurator
            dup
         9: .line 147
            getstatic org.glassfish.grizzly.ssl.SSLContextConfigurator.DEFAULT_CONFIG:Lorg/glassfish/grizzly/ssl/SSLContextConfigurator;
            iconst_1
            invokevirtual org.glassfish.grizzly.ssl.SSLContextConfigurator.createSSLContext:(Z)Ljavax/net/ssl/SSLContext;
        10: .line 148
            iconst_0
        11: .line 149
            iconst_0
        12: .line 150
            iconst_0
        13: .line 146
            invokespecial org.glassfish.grizzly.ssl.SSLEngineConfigurator.<init>:(Ljavax/net/ssl/SSLContext;ZZZ)V
        14: .line 143
      StackMap locals: org.glassfish.grizzly.ssl.SSLBaseFilter org.glassfish.grizzly.ssl.SSLEngineConfigurator int
      StackMap stack: org.glassfish.grizzly.ssl.SSLBaseFilter org.glassfish.grizzly.ssl.SSLEngineConfigurator
            putfield org.glassfish.grizzly.ssl.SSLBaseFilter.serverSSLEngineConfigurator:Lorg/glassfish/grizzly/ssl/SSLEngineConfigurator;
        15: .line 151
            return
        end local 2 // boolean renegotiateOnClientAuthWant
        end local 1 // org.glassfish.grizzly.ssl.SSLEngineConfigurator serverSSLEngineConfigurator
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   16     0                         this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0   16     1  serverSSLEngineConfigurator  Lorg/glassfish/grizzly/ssl/SSLEngineConfigurator;
            0   16     2  renegotiateOnClientAuthWant  Z
    MethodParameters:
                             Name  Flags
      serverSSLEngineConfigurator  
      renegotiateOnClientAuthWant  

  public boolean isRenegotiateOnClientAuthWant();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
         0: .line 161
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.renegotiateOnClientAuthWant:Z
            ireturn
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;

  public org.glassfish.grizzly.ssl.SSLEngineConfigurator getServerSSLEngineConfigurator();
    descriptor: ()Lorg/glassfish/grizzly/ssl/SSLEngineConfigurator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
         0: .line 169
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.serverSSLEngineConfigurator:Lorg/glassfish/grizzly/ssl/SSLEngineConfigurator;
            areturn
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;

  public void addHandshakeListener(org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener);
    descriptor: (Lorg/glassfish/grizzly/ssl/SSLBaseFilter$HandshakeListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener listener
         0: .line 173
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeListeners:Ljava/util/Set;
            aload 1 /* listener */
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
         1: .line 174
            return
        end local 1 // org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener listener
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    2     1  listener  Lorg/glassfish/grizzly/ssl/SSLBaseFilter$HandshakeListener;
    MethodParameters:
          Name  Flags
      listener  final

  public void removeHandshakeListener(org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener);
    descriptor: (Lorg/glassfish/grizzly/ssl/SSLBaseFilter$HandshakeListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener listener
         0: .line 178
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeListeners:Ljava/util/Set;
            aload 1 /* listener */
            invokeinterface java.util.Set.remove:(Ljava/lang/Object;)Z
            pop
         1: .line 179
            return
        end local 1 // org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener listener
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    2     1  listener  Lorg/glassfish/grizzly/ssl/SSLBaseFilter$HandshakeListener;
    MethodParameters:
          Name  Flags
      listener  final

  public long getHandshakeTimeout(java.util.concurrent.TimeUnit);
    descriptor: (Ljava/util/concurrent/TimeUnit;)J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // java.util.concurrent.TimeUnit timeUnit
         0: .line 188
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeTimeoutMillis:J
            lconst_0
            lcmp
            ifge 2
         1: .line 189
            ldc -1
            lreturn
         2: .line 192
      StackMap locals:
      StackMap stack:
            aload 1 /* timeUnit */
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeTimeoutMillis:J
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokevirtual java.util.concurrent.TimeUnit.convert:(JLjava/util/concurrent/TimeUnit;)J
            lreturn
        end local 1 // java.util.concurrent.TimeUnit timeUnit
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    3     1  timeUnit  Ljava/util/concurrent/TimeUnit;
    MethodParameters:
          Name  Flags
      timeUnit  final

  public void setHandshakeTimeout(long, java.util.concurrent.TimeUnit);
    descriptor: (JLjava/util/concurrent/TimeUnit;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // long handshakeTimeout
        start local 3 // java.util.concurrent.TimeUnit timeUnit
         0: .line 204
            lload 1 /* handshakeTimeout */
            lconst_0
            lcmp
            ifge 3
         1: .line 205
            aload 0 /* this */
            ldc -1
            putfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeTimeoutMillis:J
         2: .line 206
            goto 6
         3: .line 207
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
         4: .line 208
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            lload 1 /* handshakeTimeout */
            aload 3 /* timeUnit */
            invokevirtual java.util.concurrent.TimeUnit.convert:(JLjava/util/concurrent/TimeUnit;)J
         5: .line 207
            putfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeTimeoutMillis:J
         6: .line 210
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.util.concurrent.TimeUnit timeUnit
        end local 1 // long handshakeTimeout
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    7     0              this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    7     1  handshakeTimeout  J
            0    7     3          timeUnit  Ljava/util/concurrent/TimeUnit;
    MethodParameters:
                  Name  Flags
      handshakeTimeout  final
      timeUnit          final

  public void setRenegotiationDisabled(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // boolean renegotiationDisabled
         0: .line 218
            aload 0 /* this */
            iload 1 /* renegotiationDisabled */
            putfield org.glassfish.grizzly.ssl.SSLBaseFilter.renegotiationDisabled:Z
         1: .line 219
            return
        end local 1 // boolean renegotiationDisabled
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    2     0                   this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    2     1  renegotiationDisabled  Z
    MethodParameters:
                       Name  Flags
      renegotiationDisabled  

  protected org.glassfish.grizzly.ssl.SSLBaseFilter$SSLTransportFilterWrapper getOptimizedTransportFilter(org.glassfish.grizzly.filterchain.TransportFilter);
    descriptor: (Lorg/glassfish/grizzly/filterchain/TransportFilter;)Lorg/glassfish/grizzly/ssl/SSLBaseFilter$SSLTransportFilterWrapper;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.filterchain.TransportFilter childFilter
         0: .line 223
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.optimizedTransportFilter:Lorg/glassfish/grizzly/ssl/SSLBaseFilter$SSLTransportFilterWrapper;
            ifnull 2
         1: .line 224
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.optimizedTransportFilter:Lorg/glassfish/grizzly/ssl/SSLBaseFilter$SSLTransportFilterWrapper;
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter$SSLTransportFilterWrapper.wrappedFilter:Lorg/glassfish/grizzly/filterchain/TransportFilter;
            aload 1 /* childFilter */
            if_acmpeq 3
         2: .line 225
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* childFilter */
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.createOptimizedTransportFilter:(Lorg/glassfish/grizzly/filterchain/TransportFilter;)Lorg/glassfish/grizzly/ssl/SSLBaseFilter$SSLTransportFilterWrapper;
            putfield org.glassfish.grizzly.ssl.SSLBaseFilter.optimizedTransportFilter:Lorg/glassfish/grizzly/ssl/SSLBaseFilter$SSLTransportFilterWrapper;
         3: .line 228
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.optimizedTransportFilter:Lorg/glassfish/grizzly/ssl/SSLBaseFilter$SSLTransportFilterWrapper;
            areturn
        end local 1 // org.glassfish.grizzly.filterchain.TransportFilter childFilter
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    4     1  childFilter  Lorg/glassfish/grizzly/filterchain/TransportFilter;
    MethodParameters:
             Name  Flags
      childFilter  final

  protected org.glassfish.grizzly.ssl.SSLBaseFilter$SSLTransportFilterWrapper createOptimizedTransportFilter(org.glassfish.grizzly.filterchain.TransportFilter);
    descriptor: (Lorg/glassfish/grizzly/filterchain/TransportFilter;)Lorg/glassfish/grizzly/ssl/SSLBaseFilter$SSLTransportFilterWrapper;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.filterchain.TransportFilter childFilter
         0: .line 233
            new org.glassfish.grizzly.ssl.SSLBaseFilter$SSLTransportFilterWrapper
            dup
            aload 1 /* childFilter */
            aload 0 /* this */
            invokespecial org.glassfish.grizzly.ssl.SSLBaseFilter$SSLTransportFilterWrapper.<init>:(Lorg/glassfish/grizzly/filterchain/TransportFilter;Lorg/glassfish/grizzly/ssl/SSLBaseFilter;)V
            areturn
        end local 1 // org.glassfish.grizzly.filterchain.TransportFilter childFilter
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    1     1  childFilter  Lorg/glassfish/grizzly/filterchain/TransportFilter;
    MethodParameters:
             Name  Flags
      childFilter  final

  public void onRemoved(org.glassfish.grizzly.filterchain.FilterChain);
    descriptor: (Lorg/glassfish/grizzly/filterchain/FilterChain;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.filterchain.FilterChain filterChain
         0: .line 238
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.optimizedTransportFilter:Lorg/glassfish/grizzly/ssl/SSLBaseFilter$SSLTransportFilterWrapper;
            ifnull 6
         1: .line 239
            aload 1 /* filterChain */
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.optimizedTransportFilter:Lorg/glassfish/grizzly/ssl/SSLBaseFilter$SSLTransportFilterWrapper;
            invokeinterface org.glassfish.grizzly.filterchain.FilterChain.indexOf:(Ljava/lang/Object;)I
            istore 2 /* sslTransportFilterIdx */
        start local 2 // int sslTransportFilterIdx
         2: .line 240
            iload 2 /* sslTransportFilterIdx */
            iflt 6
         3: .line 242
            aload 1 /* filterChain */
            iload 2 /* sslTransportFilterIdx */
            invokeinterface org.glassfish.grizzly.filterchain.FilterChain.get:(I)Ljava/lang/Object;
            checkcast org.glassfish.grizzly.ssl.SSLBaseFilter$SSLTransportFilterWrapper
         4: .line 241
            astore 3 /* wrapper */
        start local 3 // org.glassfish.grizzly.ssl.SSLBaseFilter$SSLTransportFilterWrapper wrapper
         5: .line 243
            aload 1 /* filterChain */
            iload 2 /* sslTransportFilterIdx */
            aload 3 /* wrapper */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter$SSLTransportFilterWrapper.wrappedFilter:Lorg/glassfish/grizzly/filterchain/TransportFilter;
            invokeinterface org.glassfish.grizzly.filterchain.FilterChain.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // org.glassfish.grizzly.ssl.SSLBaseFilter$SSLTransportFilterWrapper wrapper
        end local 2 // int sslTransportFilterIdx
         6: .line 246
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.glassfish.grizzly.filterchain.FilterChain filterChain
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0    7     0                   this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    7     1            filterChain  Lorg/glassfish/grizzly/filterchain/FilterChain;
            2    6     2  sslTransportFilterIdx  I
            5    6     3                wrapper  Lorg/glassfish/grizzly/ssl/SSLBaseFilter$SSLTransportFilterWrapper;
    MethodParameters:
             Name  Flags
      filterChain  final

  public void onAdded(org.glassfish.grizzly.filterchain.FilterChain);
    descriptor: (Lorg/glassfish/grizzly/filterchain/FilterChain;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.filterchain.FilterChain filterChain
         0: .line 251
            aload 1 /* filterChain */
            ldc Lorg/glassfish/grizzly/ssl/SSLBaseFilter$SSLTransportFilterWrapper;
            invokeinterface org.glassfish.grizzly.filterchain.FilterChain.indexOfType:(Ljava/lang/Class;)I
         1: .line 250
            istore 2 /* sslTransportFilterIdx */
        start local 2 // int sslTransportFilterIdx
         2: .line 253
            iload 2 /* sslTransportFilterIdx */
            iconst_m1
            if_icmpne 11
         3: .line 255
            aload 1 /* filterChain */
            ldc Lorg/glassfish/grizzly/filterchain/TransportFilter;
            invokeinterface org.glassfish.grizzly.filterchain.FilterChain.indexOfType:(Ljava/lang/Class;)I
         4: .line 254
            istore 3 /* transportFilterIdx */
        start local 3 // int transportFilterIdx
         5: .line 256
            iload 3 /* transportFilterIdx */
            iflt 11
         6: .line 257
            aload 1 /* filterChain */
            iload 3 /* transportFilterIdx */
         7: .line 258
            aload 0 /* this */
         8: .line 259
            aload 1 /* filterChain */
            iload 3 /* transportFilterIdx */
            invokeinterface org.glassfish.grizzly.filterchain.FilterChain.get:(I)Ljava/lang/Object;
            checkcast org.glassfish.grizzly.filterchain.TransportFilter
         9: .line 258
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.getOptimizedTransportFilter:(Lorg/glassfish/grizzly/filterchain/TransportFilter;)Lorg/glassfish/grizzly/ssl/SSLBaseFilter$SSLTransportFilterWrapper;
        10: .line 257
            invokeinterface org.glassfish.grizzly.filterchain.FilterChain.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // int transportFilterIdx
        11: .line 262
      StackMap locals: int
      StackMap stack:
            return
        end local 2 // int sslTransportFilterIdx
        end local 1 // org.glassfish.grizzly.filterchain.FilterChain filterChain
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   12     0                   this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0   12     1            filterChain  Lorg/glassfish/grizzly/filterchain/FilterChain;
            2   12     2  sslTransportFilterIdx  I
            5   11     3     transportFilterIdx  I
    MethodParameters:
             Name  Flags
      filterChain  

  public org.glassfish.grizzly.filterchain.NextAction handleEvent(org.glassfish.grizzly.filterchain.FilterChainContext, org.glassfish.grizzly.filterchain.FilterChainEvent);
    descriptor: (Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/filterchain/FilterChainEvent;)Lorg/glassfish/grizzly/filterchain/NextAction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        start local 2 // org.glassfish.grizzly.filterchain.FilterChainEvent event
         0: .line 271
            aload 2 /* event */
            invokeinterface org.glassfish.grizzly.filterchain.FilterChainEvent.type:()Ljava/lang/Object;
            ldc "CERT_EVENT"
            if_acmpne 16
         1: .line 272
            aload 2 /* event */
            checkcast org.glassfish.grizzly.ssl.SSLBaseFilter$CertificateEvent
            astore 3 /* ce */
        start local 3 // org.glassfish.grizzly.ssl.SSLBaseFilter$CertificateEvent ce
         2: .line 274
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getSuspendAction:()Lorg/glassfish/grizzly/filterchain/NextAction;
            astore 5
         3: .line 276
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getConnection:()Lorg/glassfish/grizzly/Connection;
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.obtainSslConnectionContext:(Lorg/glassfish/grizzly/Connection;)Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
         4: .line 277
            aload 1 /* ctx */
         5: .line 278
            aload 3 /* ce */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter$CertificateEvent.needClientAuth:Z
         6: .line 279
            aload 3 /* ce */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter$CertificateEvent.certsFuture:Lorg/glassfish/grizzly/impl/FutureImpl;
         7: .line 276
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.getPeerCertificateChain:(Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;ZLorg/glassfish/grizzly/impl/FutureImpl;)V
         8: .line 274
            aload 5
            areturn
         9: .line 275
      StackMap locals: org.glassfish.grizzly.ssl.SSLBaseFilter org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.filterchain.FilterChainEvent org.glassfish.grizzly.ssl.SSLBaseFilter$CertificateEvent
      StackMap stack: java.lang.Throwable
            astore 4
        10: .line 276
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getConnection:()Lorg/glassfish/grizzly/Connection;
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.obtainSslConnectionContext:(Lorg/glassfish/grizzly/Connection;)Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
        11: .line 277
            aload 1 /* ctx */
        12: .line 278
            aload 3 /* ce */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter$CertificateEvent.needClientAuth:Z
        13: .line 279
            aload 3 /* ce */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter$CertificateEvent.certsFuture:Lorg/glassfish/grizzly/impl/FutureImpl;
        14: .line 276
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.getPeerCertificateChain:(Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;ZLorg/glassfish/grizzly/impl/FutureImpl;)V
        15: .line 280
            aload 4
            athrow
        end local 3 // org.glassfish.grizzly.ssl.SSLBaseFilter$CertificateEvent ce
        16: .line 282
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getInvokeAction:()Lorg/glassfish/grizzly/filterchain/NextAction;
            areturn
        end local 2 // org.glassfish.grizzly.filterchain.FilterChainEvent event
        end local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   17     0   this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0   17     1    ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0   17     2  event  Lorg/glassfish/grizzly/filterchain/FilterChainEvent;
            2   16     3     ce  Lorg/glassfish/grizzly/ssl/SSLBaseFilter$CertificateEvent;
      Exception table:
        from    to  target  type
           2     3       9  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
       Name  Flags
      ctx    final
      event  final

  public org.glassfish.grizzly.filterchain.NextAction handleRead(org.glassfish.grizzly.filterchain.FilterChainContext);
    descriptor: (Lorg/glassfish/grizzly/filterchain/FilterChainContext;)Lorg/glassfish/grizzly/filterchain/NextAction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=11, args_size=2
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
         0: .line 288
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getConnection:()Lorg/glassfish/grizzly/Connection;
            astore 2 /* connection */
        start local 2 // org.glassfish.grizzly.Connection connection
         1: .line 289
            aload 0 /* this */
            aload 2 /* connection */
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.obtainSslConnectionContext:(Lorg/glassfish/grizzly/Connection;)Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            astore 3 /* sslCtx */
        start local 3 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
         2: .line 290
            aload 3 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getSslEngine:()Ljavax/net/ssl/SSLEngine;
            astore 4 /* sslEngine */
        start local 4 // javax.net.ssl.SSLEngine sslEngine
         3: .line 292
            aload 4 /* sslEngine */
            ifnull 5
            aload 4 /* sslEngine */
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.isHandshaking:(Ljavax/net/ssl/SSLEngine;)Z
            ifne 5
         4: .line 293
            aload 0 /* this */
            aload 1 /* ctx */
            aload 3 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.unwrapAll:(Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/ssl/SSLConnectionContext;)Lorg/glassfish/grizzly/filterchain/NextAction;
            areturn
         5: .line 295
      StackMap locals: org.glassfish.grizzly.Connection org.glassfish.grizzly.ssl.SSLConnectionContext javax.net.ssl.SSLEngine
      StackMap stack:
            aload 4 /* sslEngine */
            ifnonnull 10
         6: .line 296
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.serverSSLEngineConfigurator:Lorg/glassfish/grizzly/ssl/SSLEngineConfigurator;
            invokevirtual org.glassfish.grizzly.ssl.SSLEngineConfigurator.createSSLEngine:()Ljavax/net/ssl/SSLEngine;
            astore 4 /* sslEngine */
         7: .line 297
            aload 4 /* sslEngine */
            invokevirtual javax.net.ssl.SSLEngine.beginHandshake:()V
         8: .line 298
            aload 3 /* sslCtx */
            aload 4 /* sslEngine */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.configure:(Ljavax/net/ssl/SSLEngine;)V
         9: .line 299
            aload 0 /* this */
            aload 2 /* connection */
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.notifyHandshakeStart:(Lorg/glassfish/grizzly/Connection;)V
        10: .line 303
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeTimeoutMillis:J
            lconst_0
            lcmp
            iflt 17
        11: .line 304
            aload 0 /* this */
            aload 3 /* sslCtx */
        12: .line 305
            aload 1 /* ctx */
        13: .line 306
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getMessage:()Ljava/lang/Object;
            checkcast org.glassfish.grizzly.Buffer
        14: .line 307
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeTimeoutMillis:J
        15: .line 304
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.doHandshakeSync:(Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/Buffer;J)Lorg/glassfish/grizzly/Buffer;
        16: .line 307
            goto 24
        17: .line 308
      StackMap locals:
      StackMap stack:
            aload 3 /* sslCtx */
        18: .line 309
            aload 1 /* ctx */
        19: .line 310
            aload 0 /* this */
            aload 3 /* sslCtx */
        20: .line 311
            aload 1 /* ctx */
        21: .line 312
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getMessage:()Ljava/lang/Object;
            checkcast org.glassfish.grizzly.Buffer
        22: .line 310
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.doHandshakeStep:(Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/Buffer;
        23: .line 308
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.makeInputRemainder:(Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/Buffer;
        24: .line 303
      StackMap locals:
      StackMap stack: org.glassfish.grizzly.Buffer
            astore 5 /* buffer */
        start local 5 // org.glassfish.grizzly.Buffer buffer
        25: .line 314
            aload 5 /* buffer */
            ifnull 26
            aload 5 /* buffer */
            invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
            ifeq 26
            iconst_1
            goto 27
      StackMap locals: org.glassfish.grizzly.Buffer
      StackMap stack:
        26: iconst_0
      StackMap locals:
      StackMap stack: int
        27: istore 6 /* hasRemaining */
        start local 6 // boolean hasRemaining
        28: .line 316
            aload 4 /* sslEngine */
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.isHandshaking:(Ljavax/net/ssl/SSLEngine;)Z
            istore 7 /* isHandshaking */
        start local 7 // boolean isHandshaking
        29: .line 317
            iload 7 /* isHandshaking */
            ifne 51
        30: .line 318
            aload 0 /* this */
            aload 2 /* connection */
            aload 4 /* sslEngine */
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.notifyHandshakeComplete:(Lorg/glassfish/grizzly/Connection;Ljavax/net/ssl/SSLEngine;)V
        31: .line 319
            aload 3 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getNewConnectionFilterChain:()Lorg/glassfish/grizzly/filterchain/FilterChain;
            astore 8 /* connectionFilterChain */
        start local 8 // org.glassfish.grizzly.filterchain.FilterChain connectionFilterChain
        32: .line 320
            aload 3 /* sslCtx */
            aconst_null
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.setNewConnectionFilterChain:(Lorg/glassfish/grizzly/filterchain/FilterChain;)V
        33: .line 321
            aload 8 /* connectionFilterChain */
            ifnull 48
        34: .line 322
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 38
        35: .line 323
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            ldc "Applying new FilterChain afterSSLHandshake. Connection={0} filterchain={1}"
        36: .line 325
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* connection */
            aastore
            dup
            iconst_1
            aload 8 /* connectionFilterChain */
            aastore
        37: .line 323
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
        38: .line 328
      StackMap locals: int int org.glassfish.grizzly.filterchain.FilterChain
      StackMap stack:
            aload 2 /* connection */
            aload 8 /* connectionFilterChain */
            invokeinterface org.glassfish.grizzly.Connection.setProcessor:(Lorg/glassfish/grizzly/Processor;)V
        39: .line 330
            iload 6 /* hasRemaining */
            ifeq 47
        40: .line 331
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getSuspendAction:()Lorg/glassfish/grizzly/filterchain/NextAction;
            astore 9 /* suspendAction */
        start local 9 // org.glassfish.grizzly.filterchain.NextAction suspendAction
        41: .line 332
            aload 1 /* ctx */
            aload 5 /* buffer */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.setMessage:(Ljava/lang/Object;)V
        42: .line 333
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.suspend:()Ljava/lang/Runnable;
            pop
        43: .line 335
            aload 1 /* ctx */
            aload 8 /* connectionFilterChain */
            invokestatic org.glassfish.grizzly.ssl.SSLBaseFilter.obtainProtocolChainContext:(Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/filterchain/FilterChain;)Lorg/glassfish/grizzly/filterchain/FilterChainContext;
        44: .line 334
            astore 10 /* newContext */
        start local 10 // org.glassfish.grizzly.filterchain.FilterChainContext newContext
        45: .line 336
            aload 10 /* newContext */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getInternalContext:()Lorg/glassfish/grizzly/Context;
            invokestatic org.glassfish.grizzly.ProcessorExecutor.execute:(Lorg/glassfish/grizzly/Context;)V
        46: .line 337
            aload 9 /* suspendAction */
            areturn
        end local 10 // org.glassfish.grizzly.filterchain.FilterChainContext newContext
        end local 9 // org.glassfish.grizzly.filterchain.NextAction suspendAction
        47: .line 339
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getStopAction:()Lorg/glassfish/grizzly/filterchain/NextAction;
            areturn
        48: .line 343
      StackMap locals:
      StackMap stack:
            iload 6 /* hasRemaining */
            ifeq 51
        49: .line 344
            aload 1 /* ctx */
            aload 5 /* buffer */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.setMessage:(Ljava/lang/Object;)V
        50: .line 345
            aload 0 /* this */
            aload 1 /* ctx */
            aload 3 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.unwrapAll:(Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/ssl/SSLConnectionContext;)Lorg/glassfish/grizzly/filterchain/NextAction;
            areturn
        end local 8 // org.glassfish.grizzly.filterchain.FilterChain connectionFilterChain
        51: .line 349
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            aload 5 /* buffer */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getStopAction:(Ljava/lang/Object;)Lorg/glassfish/grizzly/filterchain/NextAction;
            areturn
        end local 7 // boolean isHandshaking
        end local 6 // boolean hasRemaining
        end local 5 // org.glassfish.grizzly.Buffer buffer
        end local 4 // javax.net.ssl.SSLEngine sslEngine
        end local 3 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
        end local 2 // org.glassfish.grizzly.Connection connection
        end local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   52     0                   this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0   52     1                    ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            1   52     2             connection  Lorg/glassfish/grizzly/Connection;
            2   52     3                 sslCtx  Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            3   52     4              sslEngine  Ljavax/net/ssl/SSLEngine;
           25   52     5                 buffer  Lorg/glassfish/grizzly/Buffer;
           28   52     6           hasRemaining  Z
           29   52     7          isHandshaking  Z
           32   51     8  connectionFilterChain  Lorg/glassfish/grizzly/filterchain/FilterChain;
           41   47     9          suspendAction  Lorg/glassfish/grizzly/filterchain/NextAction;
           45   47    10             newContext  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      ctx   final

  public org.glassfish.grizzly.filterchain.NextAction handleWrite(org.glassfish.grizzly.filterchain.FilterChainContext);
    descriptor: (Lorg/glassfish/grizzly/filterchain/FilterChainContext;)Lorg/glassfish/grizzly/filterchain/NextAction;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=6, args_size=2
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
         0: .line 356
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getMessage:()Ljava/lang/Object;
            instanceof org.glassfish.grizzly.FileTransfer
            ifeq 2
         1: .line 357
            new java.lang.IllegalStateException
            dup
            ldc "TLS operations not supported with SendFile messages"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 360
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getConnection:()Lorg/glassfish/grizzly/Connection;
            astore 2 /* connection */
        start local 2 // org.glassfish.grizzly.Connection connection
         3: .line 363
            aload 2 /* connection */
            dup
            astore 3
            monitorenter
         4: .line 365
            aload 0 /* this */
            aload 1 /* ctx */
            aload 0 /* this */
            aload 2 /* connection */
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.obtainSslConnectionContext:(Lorg/glassfish/grizzly/Connection;)Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.wrapAll:(Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/ssl/SSLConnectionContext;)Lorg/glassfish/grizzly/Buffer;
         5: .line 364
            astore 4 /* output */
        start local 4 // org.glassfish.grizzly.Buffer output
         6: .line 368
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getTransportContext:()Lorg/glassfish/grizzly/filterchain/FilterChainContext$TransportContext;
         7: .line 367
            astore 5 /* transportContext */
        start local 5 // org.glassfish.grizzly.filterchain.FilterChainContext$TransportContext transportContext
         8: .line 370
            aload 1 /* ctx */
            aconst_null
            aload 4 /* output */
         9: .line 371
            aload 5 /* transportContext */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext$TransportContext.getCompletionHandler:()Lorg/glassfish/grizzly/CompletionHandler;
        10: .line 372
            aload 5 /* transportContext */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext$TransportContext.getPushBackHandler:()Lorg/glassfish/grizzly/asyncqueue/PushBackHandler;
        11: .line 373
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.COPY_CLONER:Lorg/glassfish/grizzly/asyncqueue/MessageCloner;
        12: .line 374
            aload 5 /* transportContext */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext$TransportContext.isBlocking:()Z
        13: .line 370
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.write:(Ljava/lang/Object;Ljava/lang/Object;Lorg/glassfish/grizzly/CompletionHandler;Lorg/glassfish/grizzly/asyncqueue/PushBackHandler;Lorg/glassfish/grizzly/asyncqueue/MessageCloner;Z)V
        14: .line 376
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getStopAction:()Lorg/glassfish/grizzly/filterchain/NextAction;
            aload 3
            monitorexit
        15: areturn
        end local 5 // org.glassfish.grizzly.filterchain.FilterChainContext$TransportContext transportContext
        end local 4 // org.glassfish.grizzly.Buffer output
        16: .line 363
      StackMap locals: org.glassfish.grizzly.ssl.SSLBaseFilter org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.Connection org.glassfish.grizzly.Connection
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
        17: athrow
        end local 2 // org.glassfish.grizzly.Connection connection
        end local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   18     0              this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0   18     1               ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            3   18     2        connection  Lorg/glassfish/grizzly/Connection;
            6   16     4            output  Lorg/glassfish/grizzly/Buffer;
            8   16     5  transportContext  Lorg/glassfish/grizzly/filterchain/FilterChainContext$TransportContext;
      Exception table:
        from    to  target  type
           4    15      16  any
          16    17      16  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      ctx   final

  protected org.glassfish.grizzly.filterchain.NextAction unwrapAll(org.glassfish.grizzly.filterchain.FilterChainContext, org.glassfish.grizzly.ssl.SSLConnectionContext);
    descriptor: (Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/ssl/SSLConnectionContext;)Lorg/glassfish/grizzly/filterchain/NextAction;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        start local 2 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
         0: .line 384
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getMessage:()Ljava/lang/Object;
            checkcast org.glassfish.grizzly.Buffer
            astore 3 /* input */
        start local 3 // org.glassfish.grizzly.Buffer input
         1: .line 386
            aconst_null
            astore 4 /* output */
        start local 4 // org.glassfish.grizzly.Buffer output
         2: .line 388
            iconst_0
            istore 5 /* isClosed */
        start local 5 // boolean isClosed
         3: .line 392
      StackMap locals: org.glassfish.grizzly.Buffer org.glassfish.grizzly.Buffer int
      StackMap stack:
            aload 3 /* input */
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.getSSLPacketSize:(Lorg/glassfish/grizzly/Buffer;)I
            istore 6 /* len */
        start local 6 // int len
         4: .line 394
            iload 6 /* len */
            iconst_m1
            if_icmpeq 28
            aload 3 /* input */
            invokeinterface org.glassfish.grizzly.Buffer.remaining:()I
            iload 6 /* len */
            if_icmpge 6
         5: .line 395
            goto 28
         6: .line 399
      StackMap locals: int
      StackMap stack:
            aload 2 /* sslCtx */
            iload 6 /* len */
            aload 3 /* input */
            aload 4 /* output */
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.MM_ALLOCATOR:Lorg/glassfish/grizzly/ssl/SSLConnectionContext$Allocator;
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.unwrap:(ILorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/ssl/SSLConnectionContext$Allocator;)Lorg/glassfish/grizzly/ssl/SSLConnectionContext$SslResult;
         7: .line 398
            astore 7 /* result */
        start local 7 // org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult result
         8: .line 401
            aload 7 /* result */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult.getOutput:()Lorg/glassfish/grizzly/Buffer;
            astore 4 /* output */
         9: .line 403
            aload 7 /* result */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult.isError:()Z
            ifeq 12
        10: .line 404
            aload 4 /* output */
            invokeinterface org.glassfish.grizzly.Buffer.dispose:()V
        11: .line 405
            aload 7 /* result */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult.getError:()Ljavax/net/ssl/SSLException;
            athrow
        12: .line 408
      StackMap locals: org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult
      StackMap stack:
            aload 2 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getSslEngine:()Ljavax/net/ssl/SSLEngine;
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.isHandshaking:(Ljavax/net/ssl/SSLEngine;)Z
            ifeq 20
        13: .line 410
            aload 7 /* result */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult.getSslEngineResult:()Ljavax/net/ssl/SSLEngineResult;
            invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            if_acmpeq 16
        14: .line 411
            aload 0 /* this */
            aload 1 /* ctx */
            aload 2 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.rehandshake:(Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/ssl/SSLConnectionContext;)Lorg/glassfish/grizzly/Buffer;
            astore 3 /* input */
        15: .line 412
            goto 18
        16: .line 413
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* ctx */
            aload 2 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.silentRehandshake:(Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/ssl/SSLConnectionContext;)Lorg/glassfish/grizzly/Buffer;
            astore 3 /* input */
        17: .line 414
            iconst_1
            istore 5 /* isClosed */
        18: .line 417
      StackMap locals:
      StackMap stack:
            aload 3 /* input */
            ifnonnull 20
        19: .line 418
            goto 28
        20: .line 422
      StackMap locals:
      StackMap stack:
            invokestatic org.glassfish.grizzly.ssl.SSLBaseFilter.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:()[I
            aload 7 /* result */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult.getSslEngineResult:()Ljavax/net/ssl/SSLEngineResult;
            invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
            invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
            iaload
            tableswitch { // 3 - 4
                    3: 21
                    4: 23
              default: 25
          }
        21: .line 424
      StackMap locals:
      StackMap stack:
            aload 3 /* input */
            invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
            ifeq 28
        22: .line 425
            goto 3
        23: .line 430
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 5 /* isClosed */
        24: .line 431
            goto 28
        25: .line 434
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unexpected status: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        26: .line 435
            aload 7 /* result */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult.getSslEngineResult:()Ljavax/net/ssl/SSLEngineResult;
            invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        27: .line 434
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 7 // org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult result
        end local 6 // int len
        28: .line 439
      StackMap locals:
      StackMap stack:
            aload 4 /* output */
            ifnull 33
        29: .line 440
            aload 4 /* output */
            invokeinterface org.glassfish.grizzly.Buffer.trim:()V
        30: .line 442
            aload 4 /* output */
            invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
            ifne 31
            iload 5 /* isClosed */
            ifeq 33
        31: .line 443
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            aload 4 /* output */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.setMessage:(Ljava/lang/Object;)V
        32: .line 444
            aload 1 /* ctx */
            aload 2 /* sslCtx */
            aload 1 /* ctx */
            aload 3 /* input */
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.makeInputRemainder:(Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/Buffer;
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getInvokeAction:(Ljava/lang/Object;)Lorg/glassfish/grizzly/filterchain/NextAction;
            areturn
        33: .line 448
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            aload 2 /* sslCtx */
            aload 1 /* ctx */
            aload 3 /* input */
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.makeInputRemainder:(Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/Buffer;
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getStopAction:(Ljava/lang/Object;)Lorg/glassfish/grizzly/filterchain/NextAction;
            areturn
        end local 5 // boolean isClosed
        end local 4 // org.glassfish.grizzly.Buffer output
        end local 3 // org.glassfish.grizzly.Buffer input
        end local 2 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
        end local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   34     0      this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0   34     1       ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0   34     2    sslCtx  Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            1   34     3     input  Lorg/glassfish/grizzly/Buffer;
            2   34     4    output  Lorg/glassfish/grizzly/Buffer;
            3   34     5  isClosed  Z
            4   28     6       len  I
            8   28     7    result  Lorg/glassfish/grizzly/ssl/SSLConnectionContext$SslResult;
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
        Name  Flags
      ctx     final
      sslCtx  final

  protected org.glassfish.grizzly.Buffer wrapAll(org.glassfish.grizzly.filterchain.FilterChainContext, org.glassfish.grizzly.ssl.SSLConnectionContext);
    descriptor: (Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/ssl/SSLConnectionContext;)Lorg/glassfish/grizzly/Buffer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        start local 2 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
         0: .line 455
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getMessage:()Ljava/lang/Object;
            checkcast org.glassfish.grizzly.Buffer
            astore 3 /* input */
        start local 3 // org.glassfish.grizzly.Buffer input
         1: .line 457
            aload 2 /* sslCtx */
            aload 3 /* input */
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.OUTPUT_BUFFER_ALLOCATOR:Lorg/glassfish/grizzly/ssl/SSLConnectionContext$Allocator;
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.wrapAll:(Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/ssl/SSLConnectionContext$Allocator;)Lorg/glassfish/grizzly/Buffer;
            astore 4 /* output */
        start local 4 // org.glassfish.grizzly.Buffer output
         2: .line 459
            aload 3 /* input */
            invokeinterface org.glassfish.grizzly.Buffer.tryDispose:()Z
            pop
         3: .line 461
            aload 4 /* output */
            areturn
        end local 4 // org.glassfish.grizzly.Buffer output
        end local 3 // org.glassfish.grizzly.Buffer input
        end local 2 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
        end local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    4     1     ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0    4     2  sslCtx  Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            1    4     3   input  Lorg/glassfish/grizzly/Buffer;
            2    4     4  output  Lorg/glassfish/grizzly/Buffer;
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
        Name  Flags
      ctx     final
      sslCtx  final

  protected org.glassfish.grizzly.Buffer doHandshakeSync(org.glassfish.grizzly.ssl.SSLConnectionContext, org.glassfish.grizzly.filterchain.FilterChainContext, org.glassfish.grizzly.Buffer, long);
    descriptor: (Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/Buffer;J)Lorg/glassfish/grizzly/Buffer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=14, args_size=5
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
        start local 2 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        start local 3 // org.glassfish.grizzly.Buffer inputBuffer
        start local 4 // long timeoutMillis
         0: .line 566
            aload 2 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getConnection:()Lorg/glassfish/grizzly/Connection;
            astore 6 /* connection */
        start local 6 // org.glassfish.grizzly.Connection connection
         1: .line 567
            aload 1 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getSslEngine:()Ljavax/net/ssl/SSLEngine;
            astore 7 /* sslEngine */
        start local 7 // javax.net.ssl.SSLEngine sslEngine
         2: .line 569
            aload 1 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getAppBufferSize:()I
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.allocateOutputBuffer:(I)Lorg/glassfish/grizzly/Buffer;
            astore 8 /* tmpAppBuffer */
        start local 8 // org.glassfish.grizzly.Buffer tmpAppBuffer
         3: .line 571
            aload 6 /* connection */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface org.glassfish.grizzly.Connection.getReadTimeout:(Ljava/util/concurrent/TimeUnit;)J
            lstore 9 /* oldReadTimeout */
        start local 9 // long oldReadTimeout
         4: .line 574
            aload 6 /* connection */
            lload 4 /* timeoutMillis */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface org.glassfish.grizzly.Connection.setReadTimeout:(JLjava/util/concurrent/TimeUnit;)V
         5: .line 576
            aload 1 /* sslCtx */
            aload 2 /* ctx */
         6: .line 577
            aload 0 /* this */
            aload 1 /* sslCtx */
            aload 2 /* ctx */
            aload 3 /* inputBuffer */
            aload 8 /* tmpAppBuffer */
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.doHandshakeStep:(Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/Buffer;
         7: .line 576
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.makeInputRemainder:(Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/Buffer;
            astore 3 /* inputBuffer */
         8: .line 579
            goto 17
         9: .line 580
      StackMap locals: org.glassfish.grizzly.ssl.SSLBaseFilter org.glassfish.grizzly.ssl.SSLConnectionContext org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.Buffer long org.glassfish.grizzly.Connection javax.net.ssl.SSLEngine org.glassfish.grizzly.Buffer long
      StackMap stack:
            aload 2 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.read:()Lorg/glassfish/grizzly/ReadResult;
            astore 11 /* rr */
        start local 11 // org.glassfish.grizzly.ReadResult rr
        10: .line 581
            aload 11 /* rr */
            invokevirtual org.glassfish.grizzly.ReadResult.getMessage:()Ljava/lang/Object;
            checkcast org.glassfish.grizzly.Buffer
            astore 12 /* newBuf */
        start local 12 // org.glassfish.grizzly.Buffer newBuf
        11: .line 582
            aload 2 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getMemoryManager:()Lorg/glassfish/grizzly/memory/MemoryManager;
        12: .line 583
            aload 3 /* inputBuffer */
            aload 12 /* newBuf */
        13: .line 582
            invokestatic org.glassfish.grizzly.memory.Buffers.appendBuffers:(Lorg/glassfish/grizzly/memory/MemoryManager;Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/Buffer;
            astore 3 /* inputBuffer */
        14: .line 584
            aload 1 /* sslCtx */
            aload 2 /* ctx */
        15: .line 585
            aload 0 /* this */
            aload 1 /* sslCtx */
            aload 2 /* ctx */
            aload 3 /* inputBuffer */
            aload 8 /* tmpAppBuffer */
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.doHandshakeStep:(Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/Buffer;
        16: .line 584
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.makeInputRemainder:(Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/Buffer;
            astore 3 /* inputBuffer */
        end local 12 // org.glassfish.grizzly.Buffer newBuf
        end local 11 // org.glassfish.grizzly.ReadResult rr
        17: .line 579
      StackMap locals:
      StackMap stack:
            aload 7 /* sslEngine */
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.isHandshaking:(Ljavax/net/ssl/SSLEngine;)Z
            ifne 9
        18: .line 587
            goto 23
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: astore 13
        20: .line 588
            aload 8 /* tmpAppBuffer */
            invokeinterface org.glassfish.grizzly.Buffer.dispose:()V
        21: .line 589
            aload 6 /* connection */
            lload 9 /* oldReadTimeout */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface org.glassfish.grizzly.Connection.setReadTimeout:(JLjava/util/concurrent/TimeUnit;)V
        22: .line 590
            aload 13
            athrow
        23: .line 588
      StackMap locals:
      StackMap stack:
            aload 8 /* tmpAppBuffer */
            invokeinterface org.glassfish.grizzly.Buffer.dispose:()V
        24: .line 589
            aload 6 /* connection */
            lload 9 /* oldReadTimeout */
            getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
            invokeinterface org.glassfish.grizzly.Connection.setReadTimeout:(JLjava/util/concurrent/TimeUnit;)V
        25: .line 592
            aload 3 /* inputBuffer */
            areturn
        end local 9 // long oldReadTimeout
        end local 8 // org.glassfish.grizzly.Buffer tmpAppBuffer
        end local 7 // javax.net.ssl.SSLEngine sslEngine
        end local 6 // org.glassfish.grizzly.Connection connection
        end local 4 // long timeoutMillis
        end local 3 // org.glassfish.grizzly.Buffer inputBuffer
        end local 2 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        end local 1 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   26     0            this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0   26     1          sslCtx  Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            0   26     2             ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0   26     3     inputBuffer  Lorg/glassfish/grizzly/Buffer;
            0   26     4   timeoutMillis  J
            1   26     6      connection  Lorg/glassfish/grizzly/Connection;
            2   26     7       sslEngine  Ljavax/net/ssl/SSLEngine;
            3   26     8    tmpAppBuffer  Lorg/glassfish/grizzly/Buffer;
            4   26     9  oldReadTimeout  J
           10   17    11              rr  Lorg/glassfish/grizzly/ReadResult;
           11   17    12          newBuf  Lorg/glassfish/grizzly/Buffer;
      Exception table:
        from    to  target  type
           4    19      19  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      sslCtx         final
      ctx            final
      inputBuffer    
      timeoutMillis  final

  protected org.glassfish.grizzly.Buffer doHandshakeStep(org.glassfish.grizzly.ssl.SSLConnectionContext, org.glassfish.grizzly.filterchain.FilterChainContext, org.glassfish.grizzly.Buffer);
    descriptor: (Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/Buffer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
        start local 2 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        start local 3 // org.glassfish.grizzly.Buffer inputBuffer
         0: .line 598
            aload 0 /* this */
            aload 1 /* sslCtx */
            aload 2 /* ctx */
            aload 3 /* inputBuffer */
            aconst_null
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.doHandshakeStep:(Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/Buffer;
            areturn
        end local 3 // org.glassfish.grizzly.Buffer inputBuffer
        end local 2 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        end local 1 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    1     1       sslCtx  Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            0    1     2          ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0    1     3  inputBuffer  Lorg/glassfish/grizzly/Buffer;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      sslCtx       final
      ctx          final
      inputBuffer  

  protected org.glassfish.grizzly.Buffer doHandshakeStep(org.glassfish.grizzly.ssl.SSLConnectionContext, org.glassfish.grizzly.filterchain.FilterChainContext, org.glassfish.grizzly.Buffer, org.glassfish.grizzly.Buffer);
    descriptor: (Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/Buffer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=16, args_size=5
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
        start local 2 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        start local 3 // org.glassfish.grizzly.Buffer inputBuffer
        start local 4 // org.glassfish.grizzly.Buffer tmpAppBuffer0
         0: .line 607
            aload 1 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getSslEngine:()Ljavax/net/ssl/SSLEngine;
            astore 5 /* sslEngine */
        start local 5 // javax.net.ssl.SSLEngine sslEngine
         1: .line 608
            aload 2 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getConnection:()Lorg/glassfish/grizzly/Connection;
            astore 6 /* connection */
        start local 6 // org.glassfish.grizzly.Connection connection
         2: .line 610
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            istore 7 /* isLoggingFinest */
        start local 7 // boolean isLoggingFinest
         3: .line 611
            aconst_null
            astore 8 /* tmpInputToDispose */
        start local 8 // org.glassfish.grizzly.Buffer tmpInputToDispose
         4: .line 612
            aconst_null
            astore 9 /* tmpNetBuffer */
        start local 9 // org.glassfish.grizzly.Buffer tmpNetBuffer
         5: .line 614
            aload 4 /* tmpAppBuffer0 */
            astore 10 /* tmpAppBuffer */
        start local 10 // org.glassfish.grizzly.Buffer tmpAppBuffer
         6: .line 617
            aload 5 /* sslEngine */
            invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 11 /* handshakeStatus */
        start local 11 // javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus
         7: .line 623
      StackMap locals: org.glassfish.grizzly.ssl.SSLBaseFilter org.glassfish.grizzly.ssl.SSLConnectionContext org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.Buffer org.glassfish.grizzly.Buffer javax.net.ssl.SSLEngine org.glassfish.grizzly.Connection int org.glassfish.grizzly.Buffer org.glassfish.grizzly.Buffer org.glassfish.grizzly.Buffer javax.net.ssl.SSLEngineResult$HandshakeStatus
      StackMap stack:
            iload 7 /* isLoggingFinest */
            ifeq 11
         8: .line 624
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            ldc "Loop Engine: {0} handshakeStatus={1}"
         9: .line 625
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 5 /* sslEngine */
            aastore
            dup
            iconst_1
            aload 5 /* sslEngine */
            invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            aastore
        10: .line 624
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
        11: .line 628
      StackMap locals:
      StackMap stack:
            invokestatic org.glassfish.grizzly.ssl.SSLBaseFilter.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:()[I
            aload 11 /* handshakeStatus */
            invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
            iaload
            tableswitch { // 1 - 5
                    1: 44
                    2: 44
                    3: 39
                    4: 33
                    5: 12
              default: 45
          }
        12: .line 631
      StackMap locals:
      StackMap stack:
            iload 7 /* isLoggingFinest */
            ifeq 14
        13: .line 632
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            ldc "NEED_UNWRAP Engine: {0}"
            aload 5 /* sslEngine */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
        14: .line 635
      StackMap locals:
      StackMap stack:
            aload 3 /* inputBuffer */
            ifnull 64
            aload 3 /* inputBuffer */
            invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
            ifne 16
        15: .line 636
            goto 64
        16: .line 639
      StackMap locals:
      StackMap stack:
            aload 3 /* inputBuffer */
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.getSSLPacketSize:(Lorg/glassfish/grizzly/Buffer;)I
            istore 12 /* expectedLength */
        start local 12 // int expectedLength
        17: .line 640
            iload 12 /* expectedLength */
            iconst_m1
            if_icmpeq 64
        18: .line 641
            aload 3 /* inputBuffer */
            invokeinterface org.glassfish.grizzly.Buffer.remaining:()I
            iload 12 /* expectedLength */
            if_icmpge 20
        19: .line 642
            goto 64
        20: .line 645
      StackMap locals: int
      StackMap stack:
            aload 10 /* tmpAppBuffer */
            ifnonnull 22
        21: .line 646
            aload 1 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getAppBufferSize:()I
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.allocateOutputBuffer:(I)Lorg/glassfish/grizzly/Buffer;
            astore 10 /* tmpAppBuffer */
        22: .line 650
      StackMap locals:
      StackMap stack:
            iload 12 /* expectedLength */
            aload 1 /* sslCtx */
            aload 3 /* inputBuffer */
            aload 10 /* tmpAppBuffer */
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.handshakeUnwrap:(ILorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/Buffer;Lorg/glassfish/grizzly/Buffer;)Ljavax/net/ssl/SSLEngineResult;
        23: .line 649
            astore 13 /* sslEngineResult */
        start local 13 // javax.net.ssl.SSLEngineResult sslEngineResult
        24: .line 652
            aload 3 /* inputBuffer */
            invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
            ifne 27
        25: .line 653
            aload 3 /* inputBuffer */
            astore 8 /* tmpInputToDispose */
        26: .line 654
            aconst_null
            astore 3 /* inputBuffer */
        27: .line 657
      StackMap locals: javax.net.ssl.SSLEngineResult
      StackMap stack:
            aload 13 /* sslEngineResult */
            invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
            astore 14 /* status */
        start local 14 // javax.net.ssl.SSLEngineResult$Status status
        28: .line 659
            aload 14 /* status */
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            if_acmpeq 30
        29: .line 660
            aload 14 /* status */
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            if_acmpne 31
        30: .line 661
      StackMap locals: javax.net.ssl.SSLEngineResult$Status
      StackMap stack:
            new javax.net.ssl.SSLException
            dup
            new java.lang.StringBuilder
            dup
            ldc "SSL unwrap error: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 14 /* status */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;)V
            athrow
        31: .line 664
      StackMap locals:
      StackMap stack:
            aload 5 /* sslEngine */
            invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 11 /* handshakeStatus */
        32: .line 665
            goto 45
        end local 14 // javax.net.ssl.SSLEngineResult$Status status
        end local 13 // javax.net.ssl.SSLEngineResult sslEngineResult
        end local 12 // int expectedLength
        33: .line 669
      StackMap locals:
      StackMap stack:
            iload 7 /* isLoggingFinest */
            ifeq 35
        34: .line 670
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            ldc "NEED_WRAP Engine: {0}"
            aload 5 /* sslEngine */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
        35: .line 674
      StackMap locals:
      StackMap stack:
            aload 6 /* connection */
            aload 1 /* sslCtx */
            aload 9 /* tmpNetBuffer */
        36: .line 673
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.handshakeWrap:(Lorg/glassfish/grizzly/Connection;Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/Buffer;
            astore 9 /* tmpNetBuffer */
        37: .line 675
            aload 5 /* sslEngine */
            invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 11 /* handshakeStatus */
        38: .line 677
            goto 45
        39: .line 681
      StackMap locals:
      StackMap stack:
            iload 7 /* isLoggingFinest */
            ifeq 41
        40: .line 682
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINEST:Ljava/util/logging/Level;
            ldc "NEED_TASK Engine: {0}"
            aload 5 /* sslEngine */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
        41: .line 684
      StackMap locals:
      StackMap stack:
            aload 5 /* sslEngine */
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.executeDelegatedTask:(Ljavax/net/ssl/SSLEngine;)V
        42: .line 685
            aload 5 /* sslEngine */
            invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 11 /* handshakeStatus */
        43: .line 686
            goto 45
        44: .line 691
      StackMap locals:
      StackMap stack:
            goto 64
        45: .line 695
      StackMap locals:
      StackMap stack:
            aload 11 /* handshakeStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 7
        end local 11 // javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus
        46: .line 699
            goto 64
      StackMap locals: org.glassfish.grizzly.ssl.SSLBaseFilter org.glassfish.grizzly.ssl.SSLConnectionContext org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.Buffer org.glassfish.grizzly.Buffer javax.net.ssl.SSLEngine org.glassfish.grizzly.Connection int org.glassfish.grizzly.Buffer org.glassfish.grizzly.Buffer org.glassfish.grizzly.Buffer
      StackMap stack: java.io.IOException
        47: astore 11 /* ioe */
        start local 11 // java.io.IOException ioe
        48: .line 700
            aload 0 /* this */
            aload 6 /* connection */
            aload 11 /* ioe */
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.notifyHandshakeFailed:(Lorg/glassfish/grizzly/Connection;Ljava/lang/Throwable;)V
        49: .line 701
            aload 11 /* ioe */
            athrow
        end local 11 // java.io.IOException ioe
        50: .line 702
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 15
        51: .line 703
            aload 4 /* tmpAppBuffer0 */
            ifnonnull 53
            aload 10 /* tmpAppBuffer */
            ifnull 53
        52: .line 704
            aload 10 /* tmpAppBuffer */
            invokeinterface org.glassfish.grizzly.Buffer.dispose:()V
        53: .line 707
      StackMap locals: org.glassfish.grizzly.ssl.SSLBaseFilter org.glassfish.grizzly.ssl.SSLConnectionContext org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.Buffer org.glassfish.grizzly.Buffer javax.net.ssl.SSLEngine org.glassfish.grizzly.Connection int org.glassfish.grizzly.Buffer org.glassfish.grizzly.Buffer org.glassfish.grizzly.Buffer top top top top java.lang.Throwable
      StackMap stack:
            aload 8 /* tmpInputToDispose */
            ifnull 57
        54: .line 708
            aload 8 /* tmpInputToDispose */
            invokeinterface org.glassfish.grizzly.Buffer.tryDispose:()Z
            pop
        55: .line 709
            aconst_null
            astore 3 /* inputBuffer */
        56: .line 710
            goto 59
      StackMap locals:
      StackMap stack:
        57: aload 3 /* inputBuffer */
            ifnull 59
        58: .line 711
            aload 3 /* inputBuffer */
            invokeinterface org.glassfish.grizzly.Buffer.shrink:()V
        59: .line 714
      StackMap locals:
      StackMap stack:
            aload 9 /* tmpNetBuffer */
            ifnull 63
        60: .line 715
            aload 3 /* inputBuffer */
            ifnull 62
        61: .line 716
            aload 1 /* sslCtx */
            aload 2 /* ctx */
            aload 3 /* inputBuffer */
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.makeInputRemainder:(Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/Buffer;
            astore 3 /* inputBuffer */
        62: .line 719
      StackMap locals:
      StackMap stack:
            aload 2 /* ctx */
            aload 9 /* tmpNetBuffer */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.write:(Ljava/lang/Object;)V
        63: .line 721
      StackMap locals:
      StackMap stack:
            aload 15
            athrow
        64: .line 703
      StackMap locals: org.glassfish.grizzly.ssl.SSLBaseFilter org.glassfish.grizzly.ssl.SSLConnectionContext org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.Buffer org.glassfish.grizzly.Buffer javax.net.ssl.SSLEngine org.glassfish.grizzly.Connection int org.glassfish.grizzly.Buffer org.glassfish.grizzly.Buffer org.glassfish.grizzly.Buffer
      StackMap stack:
            aload 4 /* tmpAppBuffer0 */
            ifnonnull 66
            aload 10 /* tmpAppBuffer */
            ifnull 66
        65: .line 704
            aload 10 /* tmpAppBuffer */
            invokeinterface org.glassfish.grizzly.Buffer.dispose:()V
        66: .line 707
      StackMap locals:
      StackMap stack:
            aload 8 /* tmpInputToDispose */
            ifnull 70
        67: .line 708
            aload 8 /* tmpInputToDispose */
            invokeinterface org.glassfish.grizzly.Buffer.tryDispose:()Z
            pop
        68: .line 709
            aconst_null
            astore 3 /* inputBuffer */
        69: .line 710
            goto 72
      StackMap locals:
      StackMap stack:
        70: aload 3 /* inputBuffer */
            ifnull 72
        71: .line 711
            aload 3 /* inputBuffer */
            invokeinterface org.glassfish.grizzly.Buffer.shrink:()V
        72: .line 714
      StackMap locals:
      StackMap stack:
            aload 9 /* tmpNetBuffer */
            ifnull 76
        73: .line 715
            aload 3 /* inputBuffer */
            ifnull 75
        74: .line 716
            aload 1 /* sslCtx */
            aload 2 /* ctx */
            aload 3 /* inputBuffer */
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.makeInputRemainder:(Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/Buffer;)Lorg/glassfish/grizzly/Buffer;
            astore 3 /* inputBuffer */
        75: .line 719
      StackMap locals:
      StackMap stack:
            aload 2 /* ctx */
            aload 9 /* tmpNetBuffer */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.write:(Ljava/lang/Object;)V
        76: .line 723
      StackMap locals:
      StackMap stack:
            aload 3 /* inputBuffer */
            areturn
        end local 10 // org.glassfish.grizzly.Buffer tmpAppBuffer
        end local 9 // org.glassfish.grizzly.Buffer tmpNetBuffer
        end local 8 // org.glassfish.grizzly.Buffer tmpInputToDispose
        end local 7 // boolean isLoggingFinest
        end local 6 // org.glassfish.grizzly.Connection connection
        end local 5 // javax.net.ssl.SSLEngine sslEngine
        end local 4 // org.glassfish.grizzly.Buffer tmpAppBuffer0
        end local 3 // org.glassfish.grizzly.Buffer inputBuffer
        end local 2 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        end local 1 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   77     0               this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0   77     1             sslCtx  Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            0   77     2                ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0   77     3        inputBuffer  Lorg/glassfish/grizzly/Buffer;
            0   77     4      tmpAppBuffer0  Lorg/glassfish/grizzly/Buffer;
            1   77     5          sslEngine  Ljavax/net/ssl/SSLEngine;
            2   77     6         connection  Lorg/glassfish/grizzly/Connection;
            3   77     7    isLoggingFinest  Z
            4   77     8  tmpInputToDispose  Lorg/glassfish/grizzly/Buffer;
            5   77     9       tmpNetBuffer  Lorg/glassfish/grizzly/Buffer;
            6   77    10       tmpAppBuffer  Lorg/glassfish/grizzly/Buffer;
            7   46    11    handshakeStatus  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
           17   33    12     expectedLength  I
           24   33    13    sslEngineResult  Ljavax/net/ssl/SSLEngineResult;
           28   33    14             status  Ljavax/net/ssl/SSLEngineResult$Status;
           48   50    11                ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           6    46      47  Class java.io.IOException
           6    50      50  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
               Name  Flags
      sslCtx         final
      ctx            final
      inputBuffer    
      tmpAppBuffer0  final

  protected void renegotiate(org.glassfish.grizzly.ssl.SSLConnectionContext, org.glassfish.grizzly.filterchain.FilterChainContext);
    descriptor: (Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
        start local 2 // org.glassfish.grizzly.filterchain.FilterChainContext context
         0: .line 740
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.renegotiationDisabled:Z
            ifeq 2
         1: .line 741
            return
         2: .line 743
      StackMap locals:
      StackMap stack:
            aload 1 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getSslEngine:()Ljavax/net/ssl/SSLEngine;
            astore 3 /* sslEngine */
        start local 3 // javax.net.ssl.SSLEngine sslEngine
         3: .line 744
            aload 3 /* sslEngine */
            invokevirtual javax.net.ssl.SSLEngine.getWantClientAuth:()Z
            ifeq 5
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.renegotiateOnClientAuthWant:Z
            ifne 5
         4: .line 745
            return
         5: .line 748
      StackMap locals: javax.net.ssl.SSLEngine
      StackMap stack:
            aload 3 /* sslEngine */
            invokevirtual javax.net.ssl.SSLEngine.getWantClientAuth:()Z
            ifne 8
         6: .line 749
            aload 3 /* sslEngine */
            invokevirtual javax.net.ssl.SSLEngine.getNeedClientAuth:()Z
            ifne 8
         7: .line 747
            iconst_0
            goto 9
      StackMap locals:
      StackMap stack:
         8: iconst_1
      StackMap locals:
      StackMap stack: int
         9: istore 4 /* authConfigured */
        start local 4 // boolean authConfigured
        10: .line 750
            iload 4 /* authConfigured */
            ifne 12
        11: .line 751
            aload 3 /* sslEngine */
            iconst_1
            invokevirtual javax.net.ssl.SSLEngine.setNeedClientAuth:(Z)V
        12: .line 754
      StackMap locals: int
      StackMap stack:
            aload 3 /* sslEngine */
            invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
            invokeinterface javax.net.ssl.SSLSession.invalidate:()V
        13: .line 757
            aload 3 /* sslEngine */
            invokevirtual javax.net.ssl.SSLEngine.beginHandshake:()V
        14: .line 758
            goto 20
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLHandshakeException
        15: astore 5 /* e */
        start local 5 // javax.net.ssl.SSLHandshakeException e
        16: .line 769
            aload 5 /* e */
            invokevirtual javax.net.ssl.SSLHandshakeException.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            ldc "insecure renegotiation"
            invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
            ifeq 19
        17: .line 770
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.SEVERE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 19
        18: .line 771
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
            ldc "Secure SSL/TLS renegotiation is not supported by the peer.  This is most likely due to the peer using an older SSL/TLS implementation that does not implement RFC 5746."
            invokevirtual java.util.logging.Logger.severe:(Ljava/lang/String;)V
        19: .line 781
      StackMap locals: javax.net.ssl.SSLHandshakeException
      StackMap stack:
            aload 5 /* e */
            athrow
        end local 5 // javax.net.ssl.SSLHandshakeException e
        20: .line 785
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* context */
            aload 1 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.rehandshake:(Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/ssl/SSLConnectionContext;)Lorg/glassfish/grizzly/Buffer;
            pop
        21: .line 786
            goto 26
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: astore 5
        23: .line 787
            iload 4 /* authConfigured */
            ifne 25
        24: .line 788
            aload 3 /* sslEngine */
            iconst_0
            invokevirtual javax.net.ssl.SSLEngine.setNeedClientAuth:(Z)V
        25: .line 790
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 5
            athrow
        26: .line 787
      StackMap locals:
      StackMap stack:
            iload 4 /* authConfigured */
            ifne 28
        27: .line 788
            aload 3 /* sslEngine */
            iconst_0
            invokevirtual javax.net.ssl.SSLEngine.setNeedClientAuth:(Z)V
        28: .line 791
      StackMap locals:
      StackMap stack:
            return
        end local 4 // boolean authConfigured
        end local 3 // javax.net.ssl.SSLEngine sslEngine
        end local 2 // org.glassfish.grizzly.filterchain.FilterChainContext context
        end local 1 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   29     0            this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0   29     1          sslCtx  Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            0   29     2         context  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            3   29     3       sslEngine  Ljavax/net/ssl/SSLEngine;
           10   29     4  authConfigured  Z
           16   20     5               e  Ljavax/net/ssl/SSLHandshakeException;
      Exception table:
        from    to  target  type
          13    14      15  Class javax.net.ssl.SSLHandshakeException
          20    22      22  any
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      sslCtx   final
      context  final

  private org.glassfish.grizzly.Buffer silentRehandshake(org.glassfish.grizzly.filterchain.FilterChainContext, org.glassfish.grizzly.ssl.SSLConnectionContext);
    descriptor: (Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/ssl/SSLConnectionContext;)Lorg/glassfish/grizzly/Buffer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.filterchain.FilterChainContext context
        start local 2 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
         0: .line 796
            aload 0 /* this */
         1: .line 797
            aload 2 /* sslCtx */
            aload 1 /* context */
            aconst_null
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeTimeoutMillis:J
         2: .line 796
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.doHandshakeSync:(Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/Buffer;J)Lorg/glassfish/grizzly/Buffer;
         3: areturn
         4: .line 798
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
         5: .line 799
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 7
         6: .line 800
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            ldc "Error during graceful ssl connection close"
            aload 3 /* t */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
         7: .line 803
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3 /* t */
            instanceof javax.net.ssl.SSLException
            ifeq 9
         8: .line 804
            aload 3 /* t */
            checkcast javax.net.ssl.SSLException
            athrow
         9: .line 807
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLException
            dup
            ldc "Error during re-handshaking"
            aload 3 /* t */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 3 // java.lang.Throwable t
        end local 2 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
        end local 1 // org.glassfish.grizzly.filterchain.FilterChainContext context
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0   10     1  context  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0   10     2   sslCtx  Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            5   10     3        t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.Throwable
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
         Name  Flags
      context  final
      sslCtx   final

  private org.glassfish.grizzly.Buffer rehandshake(org.glassfish.grizzly.filterchain.FilterChainContext, org.glassfish.grizzly.ssl.SSLConnectionContext);
    descriptor: (Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/ssl/SSLConnectionContext;)Lorg/glassfish/grizzly/Buffer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.filterchain.FilterChainContext context
        start local 2 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
         0: .line 813
            aload 1 /* context */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getConnection:()Lorg/glassfish/grizzly/Connection;
            astore 3 /* c */
        start local 3 // org.glassfish.grizzly.Connection c
         1: .line 815
            aload 0 /* this */
            aload 3 /* c */
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.notifyHandshakeStart:(Lorg/glassfish/grizzly/Connection;)V
         2: .line 818
            aload 0 /* this */
         3: .line 819
            aload 2 /* sslCtx */
            aload 1 /* context */
            aconst_null
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeTimeoutMillis:J
         4: .line 818
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.doHandshakeSync:(Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/Buffer;J)Lorg/glassfish/grizzly/Buffer;
            astore 4 /* buffer */
        start local 4 // org.glassfish.grizzly.Buffer buffer
         5: .line 821
            aload 0 /* this */
            aload 3 /* c */
            aload 2 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getSslEngine:()Ljavax/net/ssl/SSLEngine;
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.notifyHandshakeComplete:(Lorg/glassfish/grizzly/Connection;Ljavax/net/ssl/SSLEngine;)V
         6: .line 823
            aload 4 /* buffer */
         7: areturn
        end local 4 // org.glassfish.grizzly.Buffer buffer
         8: .line 824
      StackMap locals: org.glassfish.grizzly.ssl.SSLBaseFilter org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.ssl.SSLConnectionContext org.glassfish.grizzly.Connection
      StackMap stack: java.lang.Throwable
            astore 4 /* t */
        start local 4 // java.lang.Throwable t
         9: .line 825
            aload 0 /* this */
            aload 3 /* c */
            aload 4 /* t */
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.notifyHandshakeFailed:(Lorg/glassfish/grizzly/Connection;Ljava/lang/Throwable;)V
        10: .line 827
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 12
        11: .line 828
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            ldc "Error during re-handshaking"
            aload 4 /* t */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        12: .line 831
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 4 /* t */
            instanceof javax.net.ssl.SSLException
            ifeq 14
        13: .line 832
            aload 4 /* t */
            checkcast javax.net.ssl.SSLException
            athrow
        14: .line 835
      StackMap locals:
      StackMap stack:
            new javax.net.ssl.SSLException
            dup
            ldc "Error during re-handshaking"
            aload 4 /* t */
            invokespecial javax.net.ssl.SSLException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 4 // java.lang.Throwable t
        end local 3 // org.glassfish.grizzly.Connection c
        end local 2 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
        end local 1 // org.glassfish.grizzly.filterchain.FilterChainContext context
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0   15     1  context  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0   15     2   sslCtx  Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            1   15     3        c  Lorg/glassfish/grizzly/Connection;
            5    8     4   buffer  Lorg/glassfish/grizzly/Buffer;
            9   15     4        t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     7       8  Class java.lang.Throwable
    Exceptions:
      throws javax.net.ssl.SSLException
    MethodParameters:
         Name  Flags
      context  final
      sslCtx   final

  protected void getPeerCertificateChain(org.glassfish.grizzly.ssl.SSLConnectionContext, org.glassfish.grizzly.filterchain.FilterChainContext, boolean, org.glassfish.grizzly.impl.FutureImpl<java.lang.Object[]>);
    descriptor: (Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;ZLorg/glassfish/grizzly/impl/FutureImpl;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=7, locals=8, args_size=5
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
        start local 2 // org.glassfish.grizzly.filterchain.FilterChainContext context
        start local 3 // boolean needClientAuth
        start local 4 // org.glassfish.grizzly.impl.FutureImpl certFuture
         0: .line 860
            aload 1 /* sslCtx */
            invokestatic org.glassfish.grizzly.ssl.SSLBaseFilter.getPeerCertificates:(Lorg/glassfish/grizzly/ssl/SSLConnectionContext;)[Ljava/security/cert/Certificate;
            astore 5 /* certs */
        start local 5 // java.security.cert.Certificate[] certs
         1: .line 861
            aload 5 /* certs */
            ifnull 4
         2: .line 862
            aload 4 /* certFuture */
            aload 5 /* certs */
            invokeinterface org.glassfish.grizzly.impl.FutureImpl.result:(Ljava/lang/Object;)V
         3: .line 863
            return
         4: .line 866
      StackMap locals: java.security.cert.Certificate[]
      StackMap stack:
            iload 3 /* needClientAuth */
            ifeq 10
         5: .line 867
            aload 2 /* context */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getConnection:()Lorg/glassfish/grizzly/Connection;
            invokeinterface org.glassfish.grizzly.Connection.getTransport:()Lorg/glassfish/grizzly/Transport;
            astore 6 /* transport */
        start local 6 // org.glassfish.grizzly.Transport transport
         6: .line 868
            aload 6 /* transport */
            invokeinterface org.glassfish.grizzly.Transport.getWorkerThreadPool:()Ljava/util/concurrent/ExecutorService;
            astore 7 /* threadPool */
        start local 7 // java.util.concurrent.ExecutorService threadPool
         7: .line 869
            aload 7 /* threadPool */
            ifnonnull 9
         8: .line 870
            aload 6 /* transport */
            invokeinterface org.glassfish.grizzly.Transport.getKernelThreadPool:()Ljava/util/concurrent/ExecutorService;
            astore 7 /* threadPool */
         9: .line 872
      StackMap locals: org.glassfish.grizzly.Transport java.util.concurrent.ExecutorService
      StackMap stack:
            aload 7 /* threadPool */
            new org.glassfish.grizzly.ssl.SSLBaseFilter$3
            dup
            aload 0 /* this */
            aload 2 /* context */
            aload 1 /* sslCtx */
            aload 4 /* certFuture */
            invokespecial org.glassfish.grizzly.ssl.SSLBaseFilter$3.<init>:(Lorg/glassfish/grizzly/ssl/SSLBaseFilter;Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/impl/FutureImpl;)V
            invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;
            pop
        end local 7 // java.util.concurrent.ExecutorService threadPool
        end local 6 // org.glassfish.grizzly.Transport transport
        10: .line 903
      StackMap locals:
      StackMap stack:
            return
        end local 5 // java.security.cert.Certificate[] certs
        end local 4 // org.glassfish.grizzly.impl.FutureImpl certFuture
        end local 3 // boolean needClientAuth
        end local 2 // org.glassfish.grizzly.filterchain.FilterChainContext context
        end local 1 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0   11     1          sslCtx  Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            0   11     2         context  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0   11     3  needClientAuth  Z
            0   11     4      certFuture  Lorg/glassfish/grizzly/impl/FutureImpl<[Ljava/lang/Object;>;
            1   11     5           certs  [Ljava/security/cert/Certificate;
            6   10     6       transport  Lorg/glassfish/grizzly/Transport;
            7   10     7      threadPool  Ljava/util/concurrent/ExecutorService;
    Signature: (Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;ZLorg/glassfish/grizzly/impl/FutureImpl<[Ljava/lang/Object;>;)V
    MethodParameters:
                Name  Flags
      sslCtx          final
      context         final
      needClientAuth  final
      certFuture      final

  protected org.glassfish.grizzly.ssl.SSLConnectionContext obtainSslConnectionContext(org.glassfish.grizzly.Connection);
    descriptor: (Lorg/glassfish/grizzly/Connection;)Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.Connection connection
         0: .line 907
            getstatic org.glassfish.grizzly.ssl.SSLUtils.SSL_CTX_ATTR:Lorg/glassfish/grizzly/attributes/Attribute;
            aload 1 /* connection */
            invokevirtual org.glassfish.grizzly.attributes.Attribute.get:(Lorg/glassfish/grizzly/attributes/AttributeStorage;)Ljava/lang/Object;
            checkcast org.glassfish.grizzly.ssl.SSLConnectionContext
            astore 2 /* sslCtx */
        start local 2 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
         1: .line 908
            aload 2 /* sslCtx */
            ifnonnull 4
         2: .line 909
            aload 0 /* this */
            aload 1 /* connection */
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.createSslConnectionContext:(Lorg/glassfish/grizzly/Connection;)Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            astore 2 /* sslCtx */
         3: .line 910
            getstatic org.glassfish.grizzly.ssl.SSLUtils.SSL_CTX_ATTR:Lorg/glassfish/grizzly/attributes/Attribute;
            aload 1 /* connection */
            aload 2 /* sslCtx */
            invokevirtual org.glassfish.grizzly.attributes.Attribute.set:(Lorg/glassfish/grizzly/attributes/AttributeStorage;Ljava/lang/Object;)V
         4: .line 913
      StackMap locals: org.glassfish.grizzly.ssl.SSLConnectionContext
      StackMap stack:
            aload 2 /* sslCtx */
            areturn
        end local 2 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
        end local 1 // org.glassfish.grizzly.Connection connection
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    5     1  connection  Lorg/glassfish/grizzly/Connection;
            1    5     2      sslCtx  Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
    MethodParameters:
            Name  Flags
      connection  final

  protected org.glassfish.grizzly.ssl.SSLConnectionContext createSslConnectionContext(org.glassfish.grizzly.Connection);
    descriptor: (Lorg/glassfish/grizzly/Connection;)Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.Connection connection
         0: .line 919
            new org.glassfish.grizzly.ssl.SSLConnectionContext
            dup
            aload 1 /* connection */
            invokespecial org.glassfish.grizzly.ssl.SSLConnectionContext.<init>:(Lorg/glassfish/grizzly/Connection;)V
            areturn
        end local 1 // org.glassfish.grizzly.Connection connection
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    1     1  connection  Lorg/glassfish/grizzly/Connection;
    MethodParameters:
            Name  Flags
      connection  final

  private static org.glassfish.grizzly.filterchain.FilterChainContext obtainProtocolChainContext(org.glassfish.grizzly.filterchain.FilterChainContext, org.glassfish.grizzly.filterchain.FilterChain);
    descriptor: (Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/filterchain/FilterChain;)Lorg/glassfish/grizzly/filterchain/FilterChainContext;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        start local 1 // org.glassfish.grizzly.filterchain.FilterChain completeProtocolFilterChain
         0: .line 927
            aload 1 /* completeProtocolFilterChain */
         1: .line 928
            aload 0 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getConnection:()Lorg/glassfish/grizzly/Connection;
         2: .line 929
            aload 0 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getStartIdx:()I
         3: .line 930
            aload 1 /* completeProtocolFilterChain */
            invokeinterface org.glassfish.grizzly.filterchain.FilterChain.size:()I
         4: .line 931
            aload 0 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getFilterIdx:()I
         5: .line 927
            invokeinterface org.glassfish.grizzly.filterchain.FilterChain.obtainFilterChainContext:(Lorg/glassfish/grizzly/Connection;III)Lorg/glassfish/grizzly/filterchain/FilterChainContext;
         6: .line 926
            astore 2 /* newFilterChainContext */
        start local 2 // org.glassfish.grizzly.filterchain.FilterChainContext newFilterChainContext
         7: .line 933
            aload 2 /* newFilterChainContext */
            aload 0 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getAddressHolder:()Lorg/glassfish/grizzly/utils/Holder;
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.setAddressHolder:(Lorg/glassfish/grizzly/utils/Holder;)V
         8: .line 934
            aload 2 /* newFilterChainContext */
            aload 0 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getMessage:()Ljava/lang/Object;
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.setMessage:(Ljava/lang/Object;)V
         9: .line 935
            aload 2 /* newFilterChainContext */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getInternalContext:()Lorg/glassfish/grizzly/Context;
            getstatic org.glassfish.grizzly.IOEvent.READ:Lorg/glassfish/grizzly/IOEvent;
            invokevirtual org.glassfish.grizzly.Context.setIoEvent:(Lorg/glassfish/grizzly/IOEvent;)V
        10: .line 936
            aload 2 /* newFilterChainContext */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getInternalContext:()Lorg/glassfish/grizzly/Context;
        11: .line 937
            new org.glassfish.grizzly.ssl.SSLBaseFilter$InternalProcessingHandler
            dup
            aload 0 /* ctx */
            invokespecial org.glassfish.grizzly.ssl.SSLBaseFilter$InternalProcessingHandler.<init>:(Lorg/glassfish/grizzly/filterchain/FilterChainContext;)V
        12: .line 936
            invokevirtual org.glassfish.grizzly.Context.addLifeCycleListener:(Lorg/glassfish/grizzly/IOEventLifeCycleListener;)V
        13: .line 939
            aload 2 /* newFilterChainContext */
            areturn
        end local 2 // org.glassfish.grizzly.filterchain.FilterChainContext newFilterChainContext
        end local 1 // org.glassfish.grizzly.filterchain.FilterChain completeProtocolFilterChain
        end local 0 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
      LocalVariableTable:
        Start  End  Slot                         Name  Signature
            0   14     0                          ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0   14     1  completeProtocolFilterChain  Lorg/glassfish/grizzly/filterchain/FilterChain;
            7   14     2        newFilterChainContext  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
    MethodParameters:
                             Name  Flags
      ctx                          final
      completeProtocolFilterChain  final

  private static java.security.cert.X509Certificate[] extractX509Certs(java.security.cert.Certificate[]);
    descriptor: ([Ljava/security/cert/Certificate;)[Ljava/security/cert/X509Certificate;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=8, locals=7, args_size=1
        start local 0 // java.security.cert.Certificate[] certs
         0: .line 946
            aload 0 /* certs */
            arraylength
            anewarray java.security.cert.X509Certificate
            astore 1 /* x509Certs */
        start local 1 // java.security.cert.X509Certificate[] x509Certs
         1: .line 947
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: aload 0 /* certs */
            arraylength
            istore 3 /* len */
        start local 3 // int len
         3: goto 24
         4: .line 948
      StackMap locals: java.security.cert.X509Certificate[] int int
      StackMap stack:
            aload 0 /* certs */
            iload 2 /* i */
            aaload
            instanceof java.security.cert.X509Certificate
            ifeq 7
         5: .line 949
            aload 1 /* x509Certs */
            iload 2 /* i */
            aload 0 /* certs */
            iload 2 /* i */
            aaload
            checkcast java.security.cert.X509Certificate
            aastore
         6: .line 950
            goto 21
         7: .line 952
      StackMap locals:
      StackMap stack:
            aload 0 /* certs */
            iload 2 /* i */
            aaload
            invokevirtual java.security.cert.Certificate.getEncoded:()[B
            astore 4 /* buffer */
        start local 4 // byte[] buffer
         8: .line 954
            ldc "X.509"
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
         9: .line 953
            astore 5 /* cf */
        start local 5 // java.security.cert.CertificateFactory cf
        10: .line 955
            new java.io.ByteArrayInputStream
            dup
            aload 4 /* buffer */
            invokespecial java.io.ByteArrayInputStream.<init>:([B)V
            astore 6 /* stream */
        start local 6 // java.io.ByteArrayInputStream stream
        11: .line 956
            aload 1 /* x509Certs */
            iload 2 /* i */
        12: .line 957
            aload 5 /* cf */
            aload 6 /* stream */
            invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
        13: .line 956
            checkcast java.security.cert.X509Certificate
            aastore
        end local 6 // java.io.ByteArrayInputStream stream
        end local 5 // java.security.cert.CertificateFactory cf
        end local 4 // byte[] buffer
        14: .line 958
            goto 21
      StackMap locals:
      StackMap stack: java.lang.Exception
        15: astore 4 /* ex */
        start local 4 // java.lang.Exception ex
        16: .line 959
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.INFO:Ljava/util/logging/Level;
        17: .line 960
            new java.lang.StringBuilder
            dup
            ldc "Error translating cert "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* certs */
            iload 2 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        18: .line 961
            aload 4 /* ex */
        19: .line 959
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        20: .line 962
            aconst_null
            areturn
        end local 4 // java.lang.Exception ex
        21: .line 966
      StackMap locals:
      StackMap stack:
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 23
        22: .line 967
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            ldc "Cert #{0} = {1}"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            iload 2 /* i */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 1 /* x509Certs */
            iload 2 /* i */
            aaload
            aastore
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
        23: .line 947
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        24: iload 2 /* i */
            iload 3 /* len */
            if_icmplt 4
        end local 3 // int len
        end local 2 // int i
        25: .line 970
            aload 1 /* x509Certs */
            areturn
        end local 1 // java.security.cert.X509Certificate[] x509Certs
        end local 0 // java.security.cert.Certificate[] certs
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   26     0      certs  [Ljava/security/cert/Certificate;
            1   26     1  x509Certs  [Ljava/security/cert/X509Certificate;
            2   25     2          i  I
            3   25     3        len  I
            8   14     4     buffer  [B
           10   14     5         cf  Ljava/security/cert/CertificateFactory;
           11   14     6     stream  Ljava/io/ByteArrayInputStream;
           16   21     4         ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           7    14      15  Class java.lang.Exception
    MethodParameters:
       Name  Flags
      certs  final

  private static java.security.cert.Certificate[] getPeerCertificates(org.glassfish.grizzly.ssl.SSLConnectionContext);
    descriptor: (Lorg/glassfish/grizzly/ssl/SSLConnectionContext;)[Ljava/security/cert/Certificate;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
         0: .line 975
            aload 0 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getSslEngine:()Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
            invokeinterface javax.net.ssl.SSLSession.getPeerCertificates:()[Ljava/security/cert/Certificate;
         1: areturn
         2: .line 976
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 977
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 5
         4: .line 978
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            ldc "Error getting client certs"
            aload 1 /* t */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
         5: .line 980
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.Throwable t
        end local 0 // org.glassfish.grizzly.ssl.SSLConnectionContext sslCtx
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0  sslCtx  Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            3    6     1       t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.Throwable
    MethodParameters:
        Name  Flags
      sslCtx  final

  protected void notifyHandshakeStart(org.glassfish.grizzly.Connection);
    descriptor: (Lorg/glassfish/grizzly/Connection;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.Connection connection
         0: .line 985
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeListeners:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 5
         1: .line 986
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeListeners:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.glassfish.grizzly.ssl.SSLBaseFilter org.glassfish.grizzly.Connection top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener
            astore 2 /* listener */
        start local 2 // org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener listener
         3: .line 987
            aload 2 /* listener */
            aload 1 /* connection */
            invokeinterface org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener.onStart:(Lorg/glassfish/grizzly/Connection;)V
        end local 2 // org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener listener
         4: .line 986
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 990
      StackMap locals: org.glassfish.grizzly.ssl.SSLBaseFilter org.glassfish.grizzly.Connection
      StackMap stack:
            return
        end local 1 // org.glassfish.grizzly.Connection connection
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    6     1  connection  Lorg/glassfish/grizzly/Connection;
            3    4     2    listener  Lorg/glassfish/grizzly/ssl/SSLBaseFilter$HandshakeListener;
    MethodParameters:
            Name  Flags
      connection  final

  protected void notifyHandshakeComplete(org.glassfish.grizzly.Connection<?>, javax.net.ssl.SSLEngine);
    descriptor: (Lorg/glassfish/grizzly/Connection;Ljavax/net/ssl/SSLEngine;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.Connection connection
        start local 2 // javax.net.ssl.SSLEngine sslEngine
         0: .line 995
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeListeners:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 5
         1: .line 996
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeListeners:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.glassfish.grizzly.ssl.SSLBaseFilter org.glassfish.grizzly.Connection javax.net.ssl.SSLEngine top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener
            astore 3 /* listener */
        start local 3 // org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener listener
         3: .line 997
            aload 3 /* listener */
            aload 1 /* connection */
            invokeinterface org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener.onComplete:(Lorg/glassfish/grizzly/Connection;)V
        end local 3 // org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener listener
         4: .line 996
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 1000
      StackMap locals: org.glassfish.grizzly.ssl.SSLBaseFilter org.glassfish.grizzly.Connection javax.net.ssl.SSLEngine
      StackMap stack:
            return
        end local 2 // javax.net.ssl.SSLEngine sslEngine
        end local 1 // org.glassfish.grizzly.Connection connection
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    6     1  connection  Lorg/glassfish/grizzly/Connection<*>;
            0    6     2   sslEngine  Ljavax/net/ssl/SSLEngine;
            3    4     3    listener  Lorg/glassfish/grizzly/ssl/SSLBaseFilter$HandshakeListener;
    Signature: (Lorg/glassfish/grizzly/Connection<*>;Ljavax/net/ssl/SSLEngine;)V
    MethodParameters:
            Name  Flags
      connection  final
      sslEngine   final

  protected void notifyHandshakeFailed(org.glassfish.grizzly.Connection, java.lang.Throwable);
    descriptor: (Lorg/glassfish/grizzly/Connection;Ljava/lang/Throwable;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
        start local 1 // org.glassfish.grizzly.Connection connection
        start local 2 // java.lang.Throwable t
         0: .line 1004
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeListeners:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 5
         1: .line 1005
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeListeners:Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 4
            goto 4
      StackMap locals: org.glassfish.grizzly.ssl.SSLBaseFilter org.glassfish.grizzly.Connection java.lang.Throwable top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener
            astore 3 /* listener */
        start local 3 // org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener listener
         3: .line 1006
            aload 3 /* listener */
            aload 1 /* connection */
            aload 2 /* t */
            invokeinterface org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener.onFailure:(Lorg/glassfish/grizzly/Connection;Ljava/lang/Throwable;)V
        end local 3 // org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener listener
         4: .line 1005
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 1009
      StackMap locals: org.glassfish.grizzly.ssl.SSLBaseFilter org.glassfish.grizzly.Connection java.lang.Throwable
      StackMap stack:
            return
        end local 2 // java.lang.Throwable t
        end local 1 // org.glassfish.grizzly.Connection connection
        end local 0 // org.glassfish.grizzly.ssl.SSLBaseFilter this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    6     1  connection  Lorg/glassfish/grizzly/Connection;
            0    6     2           t  Ljava/lang/Throwable;
            3    4     3    listener  Lorg/glassfish/grizzly/ssl/SSLBaseFilter$HandshakeListener;
    MethodParameters:
            Name  Flags
      connection  final
      t           final

  static int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 74
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic javax.net.ssl.SSLEngineResult$Status.values:()[Ljavax/net/ssl/SSLEngineResult$Status;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
            iconst_1
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
            invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
            iconst_4
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
            invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
            iconst_3
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            dup
            putstatic org.glassfish.grizzly.ssl.SSLBaseFilter.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError

  static int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 74
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic javax.net.ssl.SSLEngineResult$HandshakeStatus.values:()[Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
            iconst_2
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_TASK:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
            iconst_3
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
            iconst_5
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
            iconst_4
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NOT_HANDSHAKING:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
            iconst_1
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            dup
            putstatic org.glassfish.grizzly.ssl.SSLBaseFilter.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
}
SourceFile: "SSLBaseFilter.java"
NestMembers:
  org.glassfish.grizzly.ssl.SSLBaseFilter$1  org.glassfish.grizzly.ssl.SSLBaseFilter$2  org.glassfish.grizzly.ssl.SSLBaseFilter$3  org.glassfish.grizzly.ssl.SSLBaseFilter$CertificateEvent  org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener  org.glassfish.grizzly.ssl.SSLBaseFilter$InternalProcessingHandler  org.glassfish.grizzly.ssl.SSLBaseFilter$OnWriteCopyCloner  org.glassfish.grizzly.ssl.SSLBaseFilter$SSLTransportFilterWrapper
InnerClasses:
  public final HandshakeStatus = javax.net.ssl.SSLEngineResult$HandshakeStatus of javax.net.ssl.SSLEngineResult
  public final Status = javax.net.ssl.SSLEngineResult$Status of javax.net.ssl.SSLEngineResult
  public final TransportContext = org.glassfish.grizzly.filterchain.FilterChainContext$TransportContext of org.glassfish.grizzly.filterchain.FilterChainContext
  org.glassfish.grizzly.ssl.SSLBaseFilter$1
  org.glassfish.grizzly.ssl.SSLBaseFilter$2
  org.glassfish.grizzly.ssl.SSLBaseFilter$3
  public CertificateEvent = org.glassfish.grizzly.ssl.SSLBaseFilter$CertificateEvent of org.glassfish.grizzly.ssl.SSLBaseFilter
  public abstract HandshakeListener = org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener of org.glassfish.grizzly.ssl.SSLBaseFilter
  private InternalProcessingHandler = org.glassfish.grizzly.ssl.SSLBaseFilter$InternalProcessingHandler of org.glassfish.grizzly.ssl.SSLBaseFilter
  private final OnWriteCopyCloner = org.glassfish.grizzly.ssl.SSLBaseFilter$OnWriteCopyCloner of org.glassfish.grizzly.ssl.SSLBaseFilter
  protected SSLTransportFilterWrapper = org.glassfish.grizzly.ssl.SSLBaseFilter$SSLTransportFilterWrapper of org.glassfish.grizzly.ssl.SSLBaseFilter
  abstract Allocator = org.glassfish.grizzly.ssl.SSLConnectionContext$Allocator of org.glassfish.grizzly.ssl.SSLConnectionContext
  final SslResult = org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult of org.glassfish.grizzly.ssl.SSLConnectionContext