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 94
            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 95
            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 97
            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 107
            new org.glassfish.grizzly.ssl.SSLBaseFilter$2
            dup
            invokespecial org.glassfish.grizzly.ssl.SSLBaseFilter$2.<init>:()V
            putstatic org.glassfish.grizzly.ssl.SSLBaseFilter.OUTPUT_BUFFER_ALLOCATOR:Lorg/glassfish/grizzly/ssl/SSLConnectionContext$Allocator;
         4: .line 113
            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 128
            aload 0 /* this */
            aconst_null
            invokespecial org.glassfish.grizzly.ssl.SSLBaseFilter.<init>:(Lorg/glassfish/grizzly/ssl/SSLEngineConfigurator;)V
         1: .line 129
            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 137
            aload 0 /* this */
            aload 1 /* serverSSLEngineConfigurator */
            iconst_1
            invokespecial org.glassfish.grizzly.ssl.SSLBaseFilter.<init>:(Lorg/glassfish/grizzly/ssl/SSLEngineConfigurator;Z)V
         1: .line 138
            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 148
            aload 0 /* this */
            invokespecial org.glassfish.grizzly.filterchain.BaseFilter.<init>:()V
         1: .line 119
            aload 0 /* this */
            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;
         2: .line 121
            aload 0 /* this */
            ldc -1
            putfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeTimeoutMillis:J
         3: .line 150
            aload 0 /* this */
            iload 2 /* renegotiateOnClientAuthWant */
            putfield org.glassfish.grizzly.ssl.SSLBaseFilter.renegotiateOnClientAuthWant:Z
         4: .line 151
            aload 0 /* this */
            aload 1 /* serverSSLEngineConfigurator */
            ifnull 5
            aload 1 /* serverSSLEngineConfigurator */
            goto 6
         5: .line 152
      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
            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;
            iconst_0
            iconst_0
            iconst_0
            invokespecial org.glassfish.grizzly.ssl.SSLEngineConfigurator.<init>:(Ljavax/net/ssl/SSLContext;ZZZ)V
         6: .line 151
      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;
         7: .line 153
            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    8     0                         this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    8     1  serverSSLEngineConfigurator  Lorg/glassfish/grizzly/ssl/SSLEngineConfigurator;
            0    8     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 187
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeTimeoutMillis:J
            lconst_0
            lcmp
            ifge 2
         1: .line 188
            ldc -1
            lreturn
         2: .line 191
      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 202
            lload 1 /* handshakeTimeout */
            lconst_0
            lcmp
            ifge 3
         1: .line 203
            aload 0 /* this */
            ldc -1
            putfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeTimeoutMillis:J
         2: .line 204
            goto 4
         3: .line 205
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            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
            putfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeTimeoutMillis:J
         4: .line 207
      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    5     0              this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    5     1  handshakeTimeout  J
            0    5     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 215
            aload 0 /* this */
            iload 1 /* renegotiationDisabled */
            putfield org.glassfish.grizzly.ssl.SSLBaseFilter.renegotiationDisabled:Z
         1: .line 216
            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 219
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.optimizedTransportFilter:Lorg/glassfish/grizzly/ssl/SSLBaseFilter$SSLTransportFilterWrapper;
            ifnull 1
            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 2
         1: .line 220
      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;
         2: .line 223
      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    3     0         this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    3     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 227
            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 232
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.optimizedTransportFilter:Lorg/glassfish/grizzly/ssl/SSLBaseFilter$SSLTransportFilterWrapper;
            ifnull 5
         1: .line 233
            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 234
            iload 2 /* sslTransportFilterIdx */
            iflt 5
         3: .line 235
            aload 1 /* filterChain */
            iload 2 /* sslTransportFilterIdx */
            invokeinterface org.glassfish.grizzly.filterchain.FilterChain.get:(I)Ljava/lang/Object;
            checkcast org.glassfish.grizzly.ssl.SSLBaseFilter$SSLTransportFilterWrapper
            astore 3 /* wrapper */
        start local 3 // org.glassfish.grizzly.ssl.SSLBaseFilter$SSLTransportFilterWrapper wrapper
         4: .line 236
            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
         5: .line 239
      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    6     0                   this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    6     1            filterChain  Lorg/glassfish/grizzly/filterchain/FilterChain;
            2    5     2  sslTransportFilterIdx  I
            4    5     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 243
            aload 1 /* filterChain */
            ldc Lorg/glassfish/grizzly/ssl/SSLBaseFilter$SSLTransportFilterWrapper;
            invokeinterface org.glassfish.grizzly.filterchain.FilterChain.indexOfType:(Ljava/lang/Class;)I
            istore 2 /* sslTransportFilterIdx */
        start local 2 // int sslTransportFilterIdx
         1: .line 245
            iload 2 /* sslTransportFilterIdx */
            iconst_m1
            if_icmpne 5
         2: .line 246
            aload 1 /* filterChain */
            ldc Lorg/glassfish/grizzly/filterchain/TransportFilter;
            invokeinterface org.glassfish.grizzly.filterchain.FilterChain.indexOfType:(Ljava/lang/Class;)I
            istore 3 /* transportFilterIdx */
        start local 3 // int transportFilterIdx
         3: .line 247
            iload 3 /* transportFilterIdx */
            iflt 5
         4: .line 248
            aload 1 /* filterChain */
            iload 3 /* transportFilterIdx */
            aload 0 /* this */
            aload 1 /* filterChain */
            iload 3 /* transportFilterIdx */
            invokeinterface org.glassfish.grizzly.filterchain.FilterChain.get:(I)Ljava/lang/Object;
            checkcast org.glassfish.grizzly.filterchain.TransportFilter
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.getOptimizedTransportFilter:(Lorg/glassfish/grizzly/filterchain/TransportFilter;)Lorg/glassfish/grizzly/ssl/SSLBaseFilter$SSLTransportFilterWrapper;
            invokeinterface org.glassfish.grizzly.filterchain.FilterChain.set:(ILjava/lang/Object;)Ljava/lang/Object;
            pop
        end local 3 // int transportFilterIdx
         5: .line 251
      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    6     0                   this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    6     1            filterChain  Lorg/glassfish/grizzly/filterchain/FilterChain;
            1    6     2  sslTransportFilterIdx  I
            3    5     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 257
            aload 2 /* event */
            invokeinterface org.glassfish.grizzly.filterchain.FilterChainEvent.type:()Ljava/lang/Object;
            ldc "CERT_EVENT"
            if_acmpne 8
         1: .line 258
            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 260
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getSuspendAction:()Lorg/glassfish/grizzly/filterchain/NextAction;
            astore 5
         3: .line 262
            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;
            aload 1 /* ctx */
            aload 3 /* ce */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter$CertificateEvent.needClientAuth:Z
            aload 3 /* ce */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter$CertificateEvent.certsFuture:Lorg/glassfish/grizzly/impl/FutureImpl;
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.getPeerCertificateChain:(Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;ZLorg/glassfish/grizzly/impl/FutureImpl;)V
         4: .line 260
            aload 5
            areturn
         5: .line 261
      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
         6: .line 262
            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;
            aload 1 /* ctx */
            aload 3 /* ce */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter$CertificateEvent.needClientAuth:Z
            aload 3 /* ce */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter$CertificateEvent.certsFuture:Lorg/glassfish/grizzly/impl/FutureImpl;
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.getPeerCertificateChain:(Lorg/glassfish/grizzly/ssl/SSLConnectionContext;Lorg/glassfish/grizzly/filterchain/FilterChainContext;ZLorg/glassfish/grizzly/impl/FutureImpl;)V
         7: .line 263
            aload 4
            athrow
        end local 3 // org.glassfish.grizzly.ssl.SSLBaseFilter$CertificateEvent ce
         8: .line 265
      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    9     0   this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    9     1    ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0    9     2  event  Lorg/glassfish/grizzly/filterchain/FilterChainEvent;
            2    8     3     ce  Lorg/glassfish/grizzly/ssl/SSLBaseFilter$CertificateEvent;
      Exception table:
        from    to  target  type
           2     3       5  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 270
            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 271
            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 272
            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 274
            aload 4 /* sslEngine */
            ifnull 5
            aload 4 /* sslEngine */
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.isHandshaking:(Ljavax/net/ssl/SSLEngine;)Z
            ifne 5
         4: .line 275
            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 277
      StackMap locals: org.glassfish.grizzly.Connection org.glassfish.grizzly.ssl.SSLConnectionContext javax.net.ssl.SSLEngine
      StackMap stack:
            aload 4 /* sslEngine */
            ifnonnull 10
         6: .line 278
            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 279
            aload 4 /* sslEngine */
            invokevirtual javax.net.ssl.SSLEngine.beginHandshake:()V
         8: .line 280
            aload 3 /* sslCtx */
            aload 4 /* sslEngine */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.configure:(Ljavax/net/ssl/SSLEngine;)V
         9: .line 281
            aload 0 /* this */
            aload 2 /* connection */
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.notifyHandshakeStart:(Lorg/glassfish/grizzly/Connection;)V
        10: .line 285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeTimeoutMillis:J
            lconst_0
            lcmp
            iflt 11
            aload 0 /* this */
            aload 3 /* sslCtx */
            aload 1 /* ctx */
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getMessage:()Ljava/lang/Object;
            checkcast org.glassfish.grizzly.Buffer
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeTimeoutMillis:J
            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;
            goto 12
        11: .line 286
      StackMap locals:
      StackMap stack:
            aload 3 /* sslCtx */
            aload 1 /* ctx */
            aload 0 /* this */
            aload 3 /* sslCtx */
            aload 1 /* ctx */
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getMessage:()Ljava/lang/Object;
            checkcast org.glassfish.grizzly.Buffer
            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;
            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;
        12: .line 285
      StackMap locals:
      StackMap stack: org.glassfish.grizzly.Buffer
            astore 5 /* buffer */
        start local 5 // org.glassfish.grizzly.Buffer buffer
        13: .line 288
            aload 5 /* buffer */
            ifnull 14
            aload 5 /* buffer */
            invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
            ifeq 14
            iconst_1
            goto 15
      StackMap locals: org.glassfish.grizzly.Buffer
      StackMap stack:
        14: iconst_0
      StackMap locals:
      StackMap stack: int
        15: istore 6 /* hasRemaining */
        start local 6 // boolean hasRemaining
        16: .line 290
            aload 4 /* sslEngine */
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.isHandshaking:(Ljavax/net/ssl/SSLEngine;)Z
            istore 7 /* isHandshaking */
        start local 7 // boolean isHandshaking
        17: .line 291
            iload 7 /* isHandshaking */
            ifne 38
        18: .line 292
            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
        19: .line 293
            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
        20: .line 294
            aload 3 /* sslCtx */
            aconst_null
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.setNewConnectionFilterChain:(Lorg/glassfish/grizzly/filterchain/FilterChain;)V
        21: .line 295
            aload 8 /* connectionFilterChain */
            ifnull 35
        22: .line 296
            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 26
        23: .line 297
            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}"
        24: .line 298
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 2 /* connection */
            aastore
            dup
            iconst_1
            aload 8 /* connectionFilterChain */
            aastore
        25: .line 297
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
        26: .line 301
      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
        27: .line 303
            iload 6 /* hasRemaining */
            ifeq 34
        28: .line 304
            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
        29: .line 305
            aload 1 /* ctx */
            aload 5 /* buffer */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.setMessage:(Ljava/lang/Object;)V
        30: .line 306
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.suspend:()Ljava/lang/Runnable;
            pop
        31: .line 307
            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;
            astore 10 /* newContext */
        start local 10 // org.glassfish.grizzly.filterchain.FilterChainContext newContext
        32: .line 308
            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
        33: .line 309
            aload 9 /* suspendAction */
            areturn
        end local 10 // org.glassfish.grizzly.filterchain.FilterChainContext newContext
        end local 9 // org.glassfish.grizzly.filterchain.NextAction suspendAction
        34: .line 311
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getStopAction:()Lorg/glassfish/grizzly/filterchain/NextAction;
            areturn
        35: .line 315
      StackMap locals:
      StackMap stack:
            iload 6 /* hasRemaining */
            ifeq 38
        36: .line 316
            aload 1 /* ctx */
            aload 5 /* buffer */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.setMessage:(Ljava/lang/Object;)V
        37: .line 317
            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
        38: .line 321
      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   39     0                   this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0   39     1                    ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            1   39     2             connection  Lorg/glassfish/grizzly/Connection;
            2   39     3                 sslCtx  Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            3   39     4              sslEngine  Ljavax/net/ssl/SSLEngine;
           13   39     5                 buffer  Lorg/glassfish/grizzly/Buffer;
           16   39     6           hasRemaining  Z
           17   39     7          isHandshaking  Z
           20   38     8  connectionFilterChain  Lorg/glassfish/grizzly/filterchain/FilterChain;
           29   34     9          suspendAction  Lorg/glassfish/grizzly/filterchain/NextAction;
           32   34    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 328
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getMessage:()Ljava/lang/Object;
            instanceof org.glassfish.grizzly.FileTransfer
            ifeq 2
         1: .line 329
            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 332
      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 335
            aload 2 /* connection */
            dup
            astore 3
            monitorenter
         4: .line 336
            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;
            astore 4 /* output */
        start local 4 // org.glassfish.grizzly.Buffer output
         5: .line 338
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getTransportContext:()Lorg/glassfish/grizzly/filterchain/FilterChainContext$TransportContext;
            astore 5 /* transportContext */
        start local 5 // org.glassfish.grizzly.filterchain.FilterChainContext$TransportContext transportContext
         6: .line 340
            aload 1 /* ctx */
            aconst_null
            aload 4 /* output */
            aload 5 /* transportContext */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext$TransportContext.getCompletionHandler:()Lorg/glassfish/grizzly/CompletionHandler;
            aload 5 /* transportContext */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext$TransportContext.getPushBackHandler:()Lorg/glassfish/grizzly/asyncqueue/PushBackHandler;
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.COPY_CLONER:Lorg/glassfish/grizzly/asyncqueue/MessageCloner;
            aload 5 /* transportContext */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext$TransportContext.isBlocking:()Z
            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
         7: .line 342
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getStopAction:()Lorg/glassfish/grizzly/filterchain/NextAction;
            aload 3
            monitorexit
         8: areturn
        end local 5 // org.glassfish.grizzly.filterchain.FilterChainContext$TransportContext transportContext
        end local 4 // org.glassfish.grizzly.Buffer output
         9: .line 335
      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
        10: 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   11     0              this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0   11     1               ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            3   11     2        connection  Lorg/glassfish/grizzly/Connection;
            5    9     4            output  Lorg/glassfish/grizzly/Buffer;
            6    9     5  transportContext  Lorg/glassfish/grizzly/filterchain/FilterChainContext$TransportContext;
      Exception table:
        from    to  target  type
           4     8       9  any
           9    10       9  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 349
            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 351
            aconst_null
            astore 4 /* output */
        start local 4 // org.glassfish.grizzly.Buffer output
         2: .line 353
            iconst_0
            istore 5 /* isClosed */
        start local 5 // boolean isClosed
         3: .line 356
      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 358
            iload 6 /* len */
            iconst_m1
            if_icmpeq 25
            aload 3 /* input */
            invokeinterface org.glassfish.grizzly.Buffer.remaining:()I
            iload 6 /* len */
            if_icmpge 6
         5: .line 359
            goto 25
         6: .line 362
      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;
            astore 7 /* result */
        start local 7 // org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult result
         7: .line 364
            aload 7 /* result */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult.getOutput:()Lorg/glassfish/grizzly/Buffer;
            astore 4 /* output */
         8: .line 366
            aload 7 /* result */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult.isError:()Z
            ifeq 11
         9: .line 367
            aload 4 /* output */
            invokeinterface org.glassfish.grizzly.Buffer.dispose:()V
        10: .line 368
            aload 7 /* result */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext$SslResult.getError:()Ljavax/net/ssl/SSLException;
            athrow
        11: .line 371
      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 19
        12: .line 373
            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 15
        13: .line 374
            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 */
        14: .line 375
            goto 17
        15: .line 376
      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 */
        16: .line 377
            iconst_1
            istore 5 /* isClosed */
        17: .line 380
      StackMap locals:
      StackMap stack:
            aload 3 /* input */
            ifnonnull 19
        18: .line 381
            goto 25
        19: .line 385
      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: 20
                    4: 22
              default: 24
          }
        20: .line 387
      StackMap locals:
      StackMap stack:
            aload 3 /* input */
            invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
            ifeq 25
        21: .line 388
            goto 3
        22: .line 393
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 5 /* isClosed */
        23: .line 394
            goto 25
        24: .line 397
      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
            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;
            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
        25: .line 401
      StackMap locals:
      StackMap stack:
            aload 4 /* output */
            ifnull 32
        26: .line 402
            aload 4 /* output */
            invokeinterface org.glassfish.grizzly.Buffer.trim:()V
        27: .line 404
            aload 4 /* output */
            invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
            ifne 28
            iload 5 /* isClosed */
            ifeq 32
        28: .line 405
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            aload 4 /* output */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.setMessage:(Ljava/lang/Object;)V
        29: .line 406
            iload 5 /* isClosed */
            ifne 31
        30: .line 407
            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
        31: .line 409
      StackMap locals:
      StackMap stack:
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
            ldc "Closed SSL connection detected, terminating chain."
            invokevirtual java.util.logging.Logger.finer:(Ljava/lang/String;)V
        32: .line 414
      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   33     0      this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0   33     1       ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0   33     2    sslCtx  Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            1   33     3     input  Lorg/glassfish/grizzly/Buffer;
            2   33     4    output  Lorg/glassfish/grizzly/Buffer;
            3   33     5  isClosed  Z
            4   25     6       len  I
            7   25     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 420
            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 422
            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 424
            aload 3 /* input */
            invokeinterface org.glassfish.grizzly.Buffer.tryDispose:()Z
            pop
         3: .line 426
            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 432
            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 433
            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 435
            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 437
            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 440
            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 442
            aload 1 /* sslCtx */
            aload 2 /* ctx */
            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;
            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 */
         6: .line 444
            goto 11
         7: .line 445
      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
         8: .line 446
            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
         9: .line 447
            aload 2 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getMemoryManager:()Lorg/glassfish/grizzly/memory/MemoryManager;
            aload 3 /* inputBuffer */
            aload 12 /* newBuf */
            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 */
        10: .line 448
            aload 1 /* sslCtx */
            aload 2 /* ctx */
            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;
            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
        11: .line 444
      StackMap locals:
      StackMap stack:
            aload 7 /* sslEngine */
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.isHandshaking:(Ljavax/net/ssl/SSLEngine;)Z
            ifne 7
        12: .line 450
            goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: astore 13
        14: .line 451
            aload 8 /* tmpAppBuffer */
            invokeinterface org.glassfish.grizzly.Buffer.dispose:()V
        15: .line 452
            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
        16: .line 453
            aload 13
            athrow
        17: .line 451
      StackMap locals:
      StackMap stack:
            aload 8 /* tmpAppBuffer */
            invokeinterface org.glassfish.grizzly.Buffer.dispose:()V
        18: .line 452
            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
        19: .line 455
            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   20     0            this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0   20     1          sslCtx  Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            0   20     2             ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0   20     3     inputBuffer  Lorg/glassfish/grizzly/Buffer;
            0   20     4   timeoutMillis  J
            1   20     6      connection  Lorg/glassfish/grizzly/Connection;
            2   20     7       sslEngine  Ljavax/net/ssl/SSLEngine;
            3   20     8    tmpAppBuffer  Lorg/glassfish/grizzly/Buffer;
            4   20     9  oldReadTimeout  J
            8   11    11              rr  Lorg/glassfish/grizzly/ReadResult;
            9   11    12          newBuf  Lorg/glassfish/grizzly/Buffer;
      Exception table:
        from    to  target  type
           4    13      13  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 459
            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=15, 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 465
            aload 2 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getConnection:()Lorg/glassfish/grizzly/Connection;
            astore 5 /* connection */
        start local 5 // org.glassfish.grizzly.Connection connection
         1: .line 467
            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 6 /* isLoggingFinest */
        start local 6 // boolean isLoggingFinest
         2: .line 468
            aconst_null
            astore 7 /* tmpInputToDispose */
        start local 7 // org.glassfish.grizzly.Buffer tmpInputToDispose
         3: .line 469
            aconst_null
            astore 8 /* tmpNetBuffer */
        start local 8 // org.glassfish.grizzly.Buffer tmpNetBuffer
         4: .line 471
            aload 4 /* tmpAppBuffer0 */
            astore 9 /* tmpAppBuffer */
        start local 9 // org.glassfish.grizzly.Buffer tmpAppBuffer
         5: .line 474
            aload 1 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getSslEngine:()Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 10 /* handshakeStatus */
        start local 10 // javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus
         6: .line 480
      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 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 6 /* isLoggingFinest */
            ifeq 10
         7: .line 481
            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}"
         8: .line 482
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getSslEngine:()Ljavax/net/ssl/SSLEngine;
            aastore
            dup
            iconst_1
            aload 1 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getSslEngine:()Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            aastore
         9: .line 481
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;[Ljava/lang/Object;)V
        10: .line 485
      StackMap locals:
      StackMap stack:
            invokestatic org.glassfish.grizzly.ssl.SSLBaseFilter.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:()[I
            aload 10 /* handshakeStatus */
            invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
            iaload
            tableswitch { // 1 - 5
                    1: 39
                    2: 39
                    3: 34
                    4: 29
                    5: 11
              default: 40
          }
        11: .line 488
      StackMap locals:
      StackMap stack:
            iload 6 /* isLoggingFinest */
            ifeq 13
        12: .line 489
            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 1 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getSslEngine:()Ljavax/net/ssl/SSLEngine;
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
        13: .line 492
      StackMap locals:
      StackMap stack:
            aload 3 /* inputBuffer */
            ifnull 59
            aload 3 /* inputBuffer */
            invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
            ifne 15
        14: .line 493
            goto 59
        15: .line 496
      StackMap locals:
      StackMap stack:
            aload 3 /* inputBuffer */
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.getSSLPacketSize:(Lorg/glassfish/grizzly/Buffer;)I
            istore 11 /* expectedLength */
        start local 11 // int expectedLength
        16: .line 497
            iload 11 /* expectedLength */
            iconst_m1
            if_icmpeq 59
            aload 3 /* inputBuffer */
            invokeinterface org.glassfish.grizzly.Buffer.remaining:()I
            iload 11 /* expectedLength */
            if_icmpge 18
        17: .line 498
            goto 59
        18: .line 501
      StackMap locals: int
      StackMap stack:
            aload 9 /* tmpAppBuffer */
            ifnonnull 20
        19: .line 502
            aload 1 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getAppBufferSize:()I
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.allocateOutputBuffer:(I)Lorg/glassfish/grizzly/Buffer;
            astore 9 /* tmpAppBuffer */
        20: .line 505
      StackMap locals:
      StackMap stack:
            iload 11 /* expectedLength */
            aload 1 /* sslCtx */
            aload 3 /* inputBuffer */
            aload 9 /* 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;
            astore 12 /* sslEngineResult */
        start local 12 // javax.net.ssl.SSLEngineResult sslEngineResult
        21: .line 507
            aload 3 /* inputBuffer */
            invokeinterface org.glassfish.grizzly.Buffer.hasRemaining:()Z
            ifne 24
        22: .line 508
            aload 3 /* inputBuffer */
            astore 7 /* tmpInputToDispose */
        23: .line 509
            aconst_null
            astore 3 /* inputBuffer */
        24: .line 512
      StackMap locals: javax.net.ssl.SSLEngineResult
      StackMap stack:
            aload 12 /* sslEngineResult */
            invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
            astore 13 /* status */
        start local 13 // javax.net.ssl.SSLEngineResult$Status status
        25: .line 514
            aload 13 /* status */
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            if_acmpeq 26
            aload 13 /* status */
            getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
            if_acmpne 27
        26: .line 515
      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 13 /* 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
        27: .line 518
      StackMap locals:
      StackMap stack:
            aload 1 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getSslEngine:()Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 10 /* handshakeStatus */
        28: .line 519
            goto 40
        end local 13 // javax.net.ssl.SSLEngineResult$Status status
        end local 12 // javax.net.ssl.SSLEngineResult sslEngineResult
        end local 11 // int expectedLength
        29: .line 523
      StackMap locals:
      StackMap stack:
            iload 6 /* isLoggingFinest */
            ifeq 31
        30: .line 524
            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 1 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getSslEngine:()Ljavax/net/ssl/SSLEngine;
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
        31: .line 527
      StackMap locals:
      StackMap stack:
            aload 5 /* connection */
            aload 1 /* sslCtx */
            aload 8 /* tmpNetBuffer */
            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 8 /* tmpNetBuffer */
        32: .line 528
            aload 1 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getSslEngine:()Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 10 /* handshakeStatus */
        33: .line 530
            goto 40
        34: .line 534
      StackMap locals:
      StackMap stack:
            iload 6 /* isLoggingFinest */
            ifeq 36
        35: .line 535
            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 1 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getSslEngine:()Ljavax/net/ssl/SSLEngine;
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Object;)V
        36: .line 537
      StackMap locals:
      StackMap stack:
            aload 1 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getSslEngine:()Ljavax/net/ssl/SSLEngine;
            invokestatic org.glassfish.grizzly.ssl.SSLUtils.executeDelegatedTask:(Ljavax/net/ssl/SSLEngine;)V
        37: .line 538
            aload 1 /* sslCtx */
            invokevirtual org.glassfish.grizzly.ssl.SSLConnectionContext.getSslEngine:()Ljavax/net/ssl/SSLEngine;
            invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            astore 10 /* handshakeStatus */
        38: .line 539
            goto 40
        39: .line 544
      StackMap locals:
      StackMap stack:
            goto 59
        40: .line 548
      StackMap locals:
      StackMap stack:
            aload 10 /* handshakeStatus */
            getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
            if_acmpne 6
        end local 10 // javax.net.ssl.SSLEngineResult$HandshakeStatus handshakeStatus
        41: .line 552
            goto 59
      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 org.glassfish.grizzly.Connection int org.glassfish.grizzly.Buffer org.glassfish.grizzly.Buffer org.glassfish.grizzly.Buffer
      StackMap stack: java.io.IOException
        42: astore 10 /* ioe */
        start local 10 // java.io.IOException ioe
        43: .line 553
            aload 0 /* this */
            aload 5 /* connection */
            aload 10 /* ioe */
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.notifyHandshakeFailed:(Lorg/glassfish/grizzly/Connection;Ljava/lang/Throwable;)V
        44: .line 554
            aload 10 /* ioe */
            athrow
        end local 10 // java.io.IOException ioe
        45: .line 555
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 14
        46: .line 556
            aload 4 /* tmpAppBuffer0 */
            ifnonnull 48
            aload 9 /* tmpAppBuffer */
            ifnull 48
        47: .line 557
            aload 9 /* tmpAppBuffer */
            invokeinterface org.glassfish.grizzly.Buffer.dispose:()V
        48: .line 560
      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 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 7 /* tmpInputToDispose */
            ifnull 52
        49: .line 561
            aload 7 /* tmpInputToDispose */
            invokeinterface org.glassfish.grizzly.Buffer.tryDispose:()Z
            pop
        50: .line 562
            aconst_null
            astore 3 /* inputBuffer */
        51: .line 563
            goto 54
      StackMap locals:
      StackMap stack:
        52: aload 3 /* inputBuffer */
            ifnull 54
        53: .line 564
            aload 3 /* inputBuffer */
            invokeinterface org.glassfish.grizzly.Buffer.shrink:()V
        54: .line 567
      StackMap locals:
      StackMap stack:
            aload 8 /* tmpNetBuffer */
            ifnull 58
        55: .line 568
            aload 3 /* inputBuffer */
            ifnull 57
        56: .line 569
            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 */
        57: .line 572
      StackMap locals:
      StackMap stack:
            aload 2 /* ctx */
            aload 8 /* tmpNetBuffer */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.write:(Ljava/lang/Object;)V
        58: .line 574
      StackMap locals:
      StackMap stack:
            aload 14
            athrow
        59: .line 556
      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 org.glassfish.grizzly.Connection int org.glassfish.grizzly.Buffer org.glassfish.grizzly.Buffer org.glassfish.grizzly.Buffer
      StackMap stack:
            aload 4 /* tmpAppBuffer0 */
            ifnonnull 61
            aload 9 /* tmpAppBuffer */
            ifnull 61
        60: .line 557
            aload 9 /* tmpAppBuffer */
            invokeinterface org.glassfish.grizzly.Buffer.dispose:()V
        61: .line 560
      StackMap locals:
      StackMap stack:
            aload 7 /* tmpInputToDispose */
            ifnull 65
        62: .line 561
            aload 7 /* tmpInputToDispose */
            invokeinterface org.glassfish.grizzly.Buffer.tryDispose:()Z
            pop
        63: .line 562
            aconst_null
            astore 3 /* inputBuffer */
        64: .line 563
            goto 67
      StackMap locals:
      StackMap stack:
        65: aload 3 /* inputBuffer */
            ifnull 67
        66: .line 564
            aload 3 /* inputBuffer */
            invokeinterface org.glassfish.grizzly.Buffer.shrink:()V
        67: .line 567
      StackMap locals:
      StackMap stack:
            aload 8 /* tmpNetBuffer */
            ifnull 71
        68: .line 568
            aload 3 /* inputBuffer */
            ifnull 70
        69: .line 569
            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 */
        70: .line 572
      StackMap locals:
      StackMap stack:
            aload 2 /* ctx */
            aload 8 /* tmpNetBuffer */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.write:(Ljava/lang/Object;)V
        71: .line 576
      StackMap locals:
      StackMap stack:
            aload 3 /* inputBuffer */
            areturn
        end local 9 // org.glassfish.grizzly.Buffer tmpAppBuffer
        end local 8 // org.glassfish.grizzly.Buffer tmpNetBuffer
        end local 7 // org.glassfish.grizzly.Buffer tmpInputToDispose
        end local 6 // boolean isLoggingFinest
        end local 5 // org.glassfish.grizzly.Connection connection
        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   72     0               this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0   72     1             sslCtx  Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            0   72     2                ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0   72     3        inputBuffer  Lorg/glassfish/grizzly/Buffer;
            0   72     4      tmpAppBuffer0  Lorg/glassfish/grizzly/Buffer;
            1   72     5         connection  Lorg/glassfish/grizzly/Connection;
            2   72     6    isLoggingFinest  Z
            3   72     7  tmpInputToDispose  Lorg/glassfish/grizzly/Buffer;
            4   72     8       tmpNetBuffer  Lorg/glassfish/grizzly/Buffer;
            5   72     9       tmpAppBuffer  Lorg/glassfish/grizzly/Buffer;
            6   41    10    handshakeStatus  Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
           16   29    11     expectedLength  I
           21   29    12    sslEngineResult  Ljavax/net/ssl/SSLEngineResult;
           25   29    13             status  Ljavax/net/ssl/SSLEngineResult$Status;
           43   45    10                ioe  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           5    41      42  Class java.io.IOException
           5    45      45  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 589
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.renegotiationDisabled:Z
            ifeq 2
         1: .line 590
            return
         2: .line 592
      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 593
            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 594
            return
         5: .line 596
      StackMap locals: javax.net.ssl.SSLEngine
      StackMap stack:
            aload 3 /* sslEngine */
            invokevirtual javax.net.ssl.SSLEngine.getWantClientAuth:()Z
            ifne 6
            aload 3 /* sslEngine */
            invokevirtual javax.net.ssl.SSLEngine.getNeedClientAuth:()Z
            ifne 6
            iconst_0
            goto 7
      StackMap locals:
      StackMap stack:
         6: iconst_1
      StackMap locals:
      StackMap stack: int
         7: istore 4 /* authConfigured */
        start local 4 // boolean authConfigured
         8: .line 597
            iload 4 /* authConfigured */
            ifne 10
         9: .line 598
            aload 3 /* sslEngine */
            iconst_1
            invokevirtual javax.net.ssl.SSLEngine.setNeedClientAuth:(Z)V
        10: .line 601
      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
        11: .line 604
            aload 3 /* sslEngine */
            invokevirtual javax.net.ssl.SSLEngine.beginHandshake:()V
        12: .line 605
            goto 18
      StackMap locals:
      StackMap stack: javax.net.ssl.SSLHandshakeException
        13: astore 5 /* e */
        start local 5 // javax.net.ssl.SSLHandshakeException e
        14: .line 616
            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 17
        15: .line 617
            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 17
        16: .line 618
            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
        17: .line 626
      StackMap locals: javax.net.ssl.SSLHandshakeException
      StackMap stack:
            aload 5 /* e */
            athrow
        end local 5 // javax.net.ssl.SSLHandshakeException e
        18: .line 630
      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
        19: .line 631
            goto 24
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: astore 5
        21: .line 632
            iload 4 /* authConfigured */
            ifne 23
        22: .line 633
            aload 3 /* sslEngine */
            iconst_0
            invokevirtual javax.net.ssl.SSLEngine.setNeedClientAuth:(Z)V
        23: .line 635
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 5
            athrow
        24: .line 632
      StackMap locals:
      StackMap stack:
            iload 4 /* authConfigured */
            ifne 26
        25: .line 633
            aload 3 /* sslEngine */
            iconst_0
            invokevirtual javax.net.ssl.SSLEngine.setNeedClientAuth:(Z)V
        26: .line 636
      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   27     0            this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0   27     1          sslCtx  Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            0   27     2         context  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            3   27     3       sslEngine  Ljavax/net/ssl/SSLEngine;
            8   27     4  authConfigured  Z
           14   18     5               e  Ljavax/net/ssl/SSLHandshakeException;
      Exception table:
        from    to  target  type
          11    12      13  Class javax.net.ssl.SSLHandshakeException
          18    20      20  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 640
            aload 0 /* this */
            aload 2 /* sslCtx */
            aload 1 /* context */
            aconst_null
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeTimeoutMillis:J
            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;
         1: areturn
         2: .line 641
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
         3: .line 642
            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 643
            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
         5: .line 646
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 3 /* t */
            instanceof javax.net.ssl.SSLException
            ifeq 7
         6: .line 647
            aload 3 /* t */
            checkcast javax.net.ssl.SSLException
            athrow
         7: .line 650
      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    8     0     this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0    8     1  context  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0    8     2   sslCtx  Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            3    8     3        t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  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 655
            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 657
            aload 0 /* this */
            aload 3 /* c */
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.notifyHandshakeStart:(Lorg/glassfish/grizzly/Connection;)V
         2: .line 660
            aload 0 /* this */
            aload 2 /* sslCtx */
            aload 1 /* context */
            aconst_null
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeTimeoutMillis:J
            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
         3: .line 662
            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
         4: .line 664
            aload 4 /* buffer */
         5: areturn
        end local 4 // org.glassfish.grizzly.Buffer buffer
         6: .line 665
      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
         7: .line 666
            aload 0 /* this */
            aload 3 /* c */
            aload 4 /* t */
            invokevirtual org.glassfish.grizzly.ssl.SSLBaseFilter.notifyHandshakeFailed:(Lorg/glassfish/grizzly/Connection;Ljava/lang/Throwable;)V
         8: .line 668
            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 10
         9: .line 669
            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
        10: .line 672
      StackMap locals: java.lang.Throwable
      StackMap stack:
            aload 4 /* t */
            instanceof javax.net.ssl.SSLException
            ifeq 12
        11: .line 673
            aload 4 /* t */
            checkcast javax.net.ssl.SSLException
            athrow
        12: .line 676
      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   13     0     this  Lorg/glassfish/grizzly/ssl/SSLBaseFilter;
            0   13     1  context  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0   13     2   sslCtx  Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            1   13     3        c  Lorg/glassfish/grizzly/Connection;
            3    6     4   buffer  Lorg/glassfish/grizzly/Buffer;
            7   13     4        t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           2     5       6  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 694
            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 695
            aload 5 /* certs */
            ifnull 4
         2: .line 696
            aload 4 /* certFuture */
            aload 5 /* certs */
            invokeinterface org.glassfish.grizzly.impl.FutureImpl.result:(Ljava/lang/Object;)V
         3: .line 697
            return
         4: .line 700
      StackMap locals: java.security.cert.Certificate[]
      StackMap stack:
            iload 3 /* needClientAuth */
            ifeq 10
         5: .line 701
            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 702
            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 703
            aload 7 /* threadPool */
            ifnonnull 9
         8: .line 704
            aload 6 /* transport */
            invokeinterface org.glassfish.grizzly.Transport.getKernelThreadPool:()Ljava/util/concurrent/ExecutorService;
            astore 7 /* threadPool */
         9: .line 706
      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 737
      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 740
            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 741
            aload 2 /* sslCtx */
            ifnonnull 4
         2: .line 742
            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 743
            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 746
      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 751
            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 756
            aload 1 /* completeProtocolFilterChain */
            aload 0 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getConnection:()Lorg/glassfish/grizzly/Connection;
            aload 0 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getStartIdx:()I
         1: .line 757
            aload 1 /* completeProtocolFilterChain */
            invokeinterface org.glassfish.grizzly.filterchain.FilterChain.size:()I
            aload 0 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getFilterIdx:()I
         2: .line 756
            invokeinterface org.glassfish.grizzly.filterchain.FilterChain.obtainFilterChainContext:(Lorg/glassfish/grizzly/Connection;III)Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            astore 2 /* newFilterChainContext */
        start local 2 // org.glassfish.grizzly.filterchain.FilterChainContext newFilterChainContext
         3: .line 759
            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
         4: .line 760
            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
         5: .line 761
            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
         6: .line 762
            aload 2 /* newFilterChainContext */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getInternalContext:()Lorg/glassfish/grizzly/Context;
            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
            invokevirtual org.glassfish.grizzly.Context.addLifeCycleListener:(Lorg/glassfish/grizzly/IOEventLifeCycleListener;)V
         7: .line 764
            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    8     0                          ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0    8     1  completeProtocolFilterChain  Lorg/glassfish/grizzly/filterchain/FilterChain;
            3    8     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 770
            aload 0 /* certs */
            arraylength
            anewarray java.security.cert.X509Certificate
            astore 1 /* x509Certs */
        start local 1 // java.security.cert.X509Certificate[] x509Certs
         1: .line 771
            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 18
         4: .line 772
      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 773
            aload 1 /* x509Certs */
            iload 2 /* i */
            aload 0 /* certs */
            iload 2 /* i */
            aaload
            checkcast java.security.cert.X509Certificate
            aastore
         6: .line 774
            goto 15
         7: .line 776
      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 777
            ldc "X.509"
            invokestatic java.security.cert.CertificateFactory.getInstance:(Ljava/lang/String;)Ljava/security/cert/CertificateFactory;
            astore 5 /* cf */
        start local 5 // java.security.cert.CertificateFactory cf
         9: .line 778
            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
        10: .line 779
            aload 1 /* x509Certs */
            iload 2 /* i */
            aload 5 /* cf */
            aload 6 /* stream */
            invokevirtual java.security.cert.CertificateFactory.generateCertificate:(Ljava/io/InputStream;)Ljava/security/cert/Certificate;
            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
        11: .line 780
            goto 15
      StackMap locals:
      StackMap stack: java.lang.Exception
        12: astore 4 /* ex */
        start local 4 // java.lang.Exception ex
        13: .line 781
            getstatic org.glassfish.grizzly.ssl.SSLBaseFilter.LOGGER:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.INFO:Ljava/util/logging/Level;
            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;
            aload 4 /* ex */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        14: .line 782
            aconst_null
            areturn
        end local 4 // java.lang.Exception ex
        15: .line 786
      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 17
        16: .line 787
            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
        17: .line 771
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        18: iload 2 /* i */
            iload 3 /* len */
            if_icmplt 4
        end local 3 // int len
        end local 2 // int i
        19: .line 790
            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   20     0      certs  [Ljava/security/cert/Certificate;
            1   20     1  x509Certs  [Ljava/security/cert/X509Certificate;
            2   19     2          i  I
            3   19     3        len  I
            8   11     4     buffer  [B
            9   11     5         cf  Ljava/security/cert/CertificateFactory;
           10   11     6     stream  Ljava/io/ByteArrayInputStream;
           13   15     4         ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           7    11      12  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 795
            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 796
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 1 /* t */
        start local 1 // java.lang.Throwable t
         3: .line 797
            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
         4: .line 798
            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    5     0  sslCtx  Lorg/glassfish/grizzly/ssl/SSLConnectionContext;
            3    5     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 notifyHandshakeInit(org.glassfish.grizzly.Connection<?>, javax.net.ssl.SSLEngine);
    descriptor: (Lorg/glassfish/grizzly/Connection;Ljavax/net/ssl/SSLEngine;)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 // javax.net.ssl.SSLEngine sslEngine
         0: .line 803
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeListeners:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 5
         1: .line 804
            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 805
            aload 3 /* listener */
            aload 1 /* connection */
            aload 2 /* sslEngine */
            invokeinterface org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener.onInit:(Lorg/glassfish/grizzly/Connection;Ljavax/net/ssl/SSLEngine;)V
        end local 3 // org.glassfish.grizzly.ssl.SSLBaseFilter$HandshakeListener listener
         4: .line 804
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 808
      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 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 811
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeListeners:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 5
         1: .line 812
            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 813
            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 812
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 816
      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 820
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeListeners:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 5
         1: .line 821
            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 822
            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 821
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 825
      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 828
            aload 0 /* this */
            getfield org.glassfish.grizzly.ssl.SSLBaseFilter.handshakeListeners:Ljava/util/Set;
            invokeinterface java.util.Set.isEmpty:()Z
            ifne 5
         1: .line 829
            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 830
            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 829
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 833
      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 93
            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 93
            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