public class org.glassfish.grizzly.websockets.WebSocketEngine
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.glassfish.grizzly.websockets.WebSocketEngine
  super_class: java.lang.Object
{
  public static final org.glassfish.grizzly.websockets.Version DEFAULT_VERSION;
    descriptor: Lorg/glassfish/grizzly/websockets/Version;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  public static final int DEFAULT_TIMEOUT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 30

  private static final java.lang.String[] EMPTY_STRING_ARRAY;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final org.glassfish.grizzly.websockets.WebSocketEngine engine;
    descriptor: Lorg/glassfish/grizzly/websockets/WebSocketEngine;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static final java.util.logging.Logger logger;
    descriptor: Ljava/util/logging/Logger;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  private final java.util.List<org.glassfish.grizzly.websockets.WebSocketApplication> applications;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Lorg/glassfish/grizzly/websockets/WebSocketApplication;>;

  private final java.util.HashMap<org.glassfish.grizzly.websockets.WebSocketApplication, java.lang.String> applicationMap;
    descriptor: Ljava/util/HashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/HashMap<Lorg/glassfish/grizzly/websockets/WebSocketApplication;Ljava/lang/String;>;

  private final java.util.HashMap<java.lang.String, org.glassfish.grizzly.websockets.WebSocketApplication> fullPathToApplication;
    descriptor: Ljava/util/HashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/HashMap<Ljava/lang/String;Lorg/glassfish/grizzly/websockets/WebSocketApplication;>;

  private final java.util.HashMap<java.lang.String, java.util.List<org.glassfish.grizzly.websockets.WebSocketApplication>> contextApplications;
    descriptor: Ljava/util/HashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/HashMap<Ljava/lang/String;Ljava/util/List<Lorg/glassfish/grizzly/websockets/WebSocketApplication;>;>;

  private final org.glassfish.grizzly.http.HttpResponsePacket$Builder unsupportedVersionsResponseBuilder;
    descriptor: Lorg/glassfish/grizzly/http/HttpResponsePacket$Builder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private org.glassfish.grizzly.http.server.util.Mapper mapper;
    descriptor: Lorg/glassfish/grizzly/http/server/util/Mapper;
    flags: (0x0002) ACC_PRIVATE

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 46
            ldc Lorg/glassfish/grizzly/websockets/WebSocketEngine;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.glassfish.grizzly.websockets.WebSocketEngine.$assertionsDisabled:Z
         3: .line 48
            getstatic org.glassfish.grizzly.websockets.Version.RFC6455:Lorg/glassfish/grizzly/websockets/Version;
            putstatic org.glassfish.grizzly.websockets.WebSocketEngine.DEFAULT_VERSION:Lorg/glassfish/grizzly/websockets/Version;
         4: .line 50
            iconst_0
            anewarray java.lang.String
            putstatic org.glassfish.grizzly.websockets.WebSocketEngine.EMPTY_STRING_ARRAY:[Ljava/lang/String;
         5: .line 51
            new org.glassfish.grizzly.websockets.WebSocketEngine
            dup
            invokespecial org.glassfish.grizzly.websockets.WebSocketEngine.<init>:()V
            putstatic org.glassfish.grizzly.websockets.WebSocketEngine.engine:Lorg/glassfish/grizzly/websockets/WebSocketEngine;
         6: .line 52
            ldc "websocket"
            invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
            putstatic org.glassfish.grizzly.websockets.WebSocketEngine.logger:Ljava/util/logging/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.websockets.WebSocketEngine this
         0: .line 69
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 54
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.glassfish.grizzly.websockets.WebSocketEngine.applications:Ljava/util/List;
         2: .line 58
            aload 0 /* this */
            new java.util.HashMap
            dup
            iconst_4
            invokespecial java.util.HashMap.<init>:(I)V
            putfield org.glassfish.grizzly.websockets.WebSocketEngine.applicationMap:Ljava/util/HashMap;
         3: .line 60
            aload 0 /* this */
            new java.util.HashMap
            dup
            iconst_4
            invokespecial java.util.HashMap.<init>:(I)V
            putfield org.glassfish.grizzly.websockets.WebSocketEngine.fullPathToApplication:Ljava/util/HashMap;
         4: .line 63
            aload 0 /* this */
            new java.util.HashMap
            dup
            iconst_2
            invokespecial java.util.HashMap.<init>:(I)V
            putfield org.glassfish.grizzly.websockets.WebSocketEngine.contextApplications:Ljava/util/HashMap;
         5: .line 67
            aload 0 /* this */
            new org.glassfish.grizzly.http.server.util.Mapper
            dup
            invokespecial org.glassfish.grizzly.http.server.util.Mapper.<init>:()V
            putfield org.glassfish.grizzly.websockets.WebSocketEngine.mapper:Lorg/glassfish/grizzly/http/server/util/Mapper;
         6: .line 70
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.mapper:Lorg/glassfish/grizzly/http/server/util/Mapper;
            ldc "localhost"
            invokevirtual org.glassfish.grizzly.http.server.util.Mapper.setDefaultHostName:(Ljava/lang/String;)V
         7: .line 71
            aload 0 /* this */
            new org.glassfish.grizzly.http.HttpResponsePacket$Builder
            dup
            invokespecial org.glassfish.grizzly.http.HttpResponsePacket$Builder.<init>:()V
            putfield org.glassfish.grizzly.websockets.WebSocketEngine.unsupportedVersionsResponseBuilder:Lorg/glassfish/grizzly/http/HttpResponsePacket$Builder;
         8: .line 72
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.unsupportedVersionsResponseBuilder:Lorg/glassfish/grizzly/http/HttpResponsePacket$Builder;
            getstatic org.glassfish.grizzly.http.util.HttpStatus.BAD_REQUEST_400:Lorg/glassfish/grizzly/http/util/HttpStatus;
            invokevirtual org.glassfish.grizzly.http.util.HttpStatus.getStatusCode:()I
            invokevirtual org.glassfish.grizzly.http.HttpResponsePacket$Builder.status:(I)Lorg/glassfish/grizzly/http/HttpResponsePacket$Builder;
            pop
         9: .line 73
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.unsupportedVersionsResponseBuilder:Lorg/glassfish/grizzly/http/HttpResponsePacket$Builder;
            ldc "Sec-WebSocket-Version"
            invokestatic org.glassfish.grizzly.websockets.Version.getSupportedWireProtocolVersions:()Ljava/lang/String;
            invokevirtual org.glassfish.grizzly.http.HttpResponsePacket$Builder.header:(Ljava/lang/String;Ljava/lang/String;)Lorg/glassfish/grizzly/http/HttpHeader$Builder;
            pop
        10: .line 74
            return
        end local 0 // org.glassfish.grizzly.websockets.WebSocketEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lorg/glassfish/grizzly/websockets/WebSocketEngine;

  public static org.glassfish.grizzly.websockets.WebSocketEngine getEngine();
    descriptor: ()Lorg/glassfish/grizzly/websockets/WebSocketEngine;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 77
            getstatic org.glassfish.grizzly.websockets.WebSocketEngine.engine:Lorg/glassfish/grizzly/websockets/WebSocketEngine;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public org.glassfish.grizzly.websockets.WebSocketApplication getApplication(org.glassfish.grizzly.http.HttpRequestPacket);
    descriptor: (Lorg/glassfish/grizzly/http/HttpRequestPacket;)Lorg/glassfish/grizzly/websockets/WebSocketApplication;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.glassfish.grizzly.websockets.WebSocketEngine this
        start local 1 // org.glassfish.grizzly.http.HttpRequestPacket request
         0: .line 81
            aload 0 /* this */
            aload 1 /* request */
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.mapper:Lorg/glassfish/grizzly/http/server/util/Mapper;
            invokevirtual org.glassfish.grizzly.websockets.WebSocketEngine.getApplication:(Lorg/glassfish/grizzly/http/HttpRequestPacket;Lorg/glassfish/grizzly/http/server/util/Mapper;)Lorg/glassfish/grizzly/websockets/WebSocketEngine$WebSocketApplicationReg;
            astore 2 /* appReg */
        start local 2 // org.glassfish.grizzly.websockets.WebSocketEngine$WebSocketApplicationReg appReg
         1: .line 82
            aload 2 /* appReg */
            ifnull 2
            aload 2 /* appReg */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine$WebSocketApplicationReg.app:Lorg/glassfish/grizzly/websockets/WebSocketApplication;
            goto 3
      StackMap locals: org.glassfish.grizzly.websockets.WebSocketEngine$WebSocketApplicationReg
      StackMap stack:
         2: aconst_null
      StackMap locals:
      StackMap stack: org.glassfish.grizzly.websockets.WebSocketApplication
         3: areturn
        end local 2 // org.glassfish.grizzly.websockets.WebSocketEngine$WebSocketApplicationReg appReg
        end local 1 // org.glassfish.grizzly.http.HttpRequestPacket request
        end local 0 // org.glassfish.grizzly.websockets.WebSocketEngine this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lorg/glassfish/grizzly/websockets/WebSocketEngine;
            0    4     1  request  Lorg/glassfish/grizzly/http/HttpRequestPacket;
            1    4     2   appReg  Lorg/glassfish/grizzly/websockets/WebSocketEngine$WebSocketApplicationReg;
    MethodParameters:
         Name  Flags
      request  

  private org.glassfish.grizzly.websockets.WebSocketEngine$WebSocketApplicationReg getApplication(org.glassfish.grizzly.http.HttpRequestPacket, org.glassfish.grizzly.http.server.util.Mapper);
    descriptor: (Lorg/glassfish/grizzly/http/HttpRequestPacket;Lorg/glassfish/grizzly/http/server/util/Mapper;)Lorg/glassfish/grizzly/websockets/WebSocketEngine$WebSocketApplicationReg;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // org.glassfish.grizzly.websockets.WebSocketEngine this
        start local 1 // org.glassfish.grizzly.http.HttpRequestPacket request
        start local 2 // org.glassfish.grizzly.http.server.util.Mapper glassfishMapper
         0: .line 87
            aload 2 /* glassfishMapper */
            ifnull 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: istore 3 /* isGlassfish */
        start local 3 // boolean isGlassfish
         3: .line 89
            aconst_null
            astore 4 /* foundWebSocketApp */
        start local 4 // org.glassfish.grizzly.websockets.WebSocketApplication foundWebSocketApp
         4: .line 90
            new org.glassfish.grizzly.websockets.WebSocketMappingData
            dup
            iload 3 /* isGlassfish */
            invokespecial org.glassfish.grizzly.websockets.WebSocketMappingData.<init>:(Z)V
            astore 5 /* data */
        start local 5 // org.glassfish.grizzly.websockets.WebSocketMappingData data
         5: .line 93
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.mapper:Lorg/glassfish/grizzly/http/server/util/Mapper;
            aload 1 /* request */
            aload 1 /* request */
            invokevirtual org.glassfish.grizzly.http.HttpRequestPacket.getRequestURIRef:()Lorg/glassfish/grizzly/http/util/RequestURIRef;
            invokevirtual org.glassfish.grizzly.http.util.RequestURIRef.getDecodedRequestURIBC:()Lorg/glassfish/grizzly/http/util/DataChunk;
            aload 5 /* data */
            iconst_0
            invokevirtual org.glassfish.grizzly.http.server.util.Mapper.mapUriWithSemicolon:(Lorg/glassfish/grizzly/http/HttpRequestPacket;Lorg/glassfish/grizzly/http/util/DataChunk;Lorg/glassfish/grizzly/http/server/util/MappingData;I)V
         6: .line 94
            aload 5 /* data */
            getfield org.glassfish.grizzly.websockets.WebSocketMappingData.wrapper:Ljava/lang/Object;
            ifnull 12
         7: .line 95
            aload 5 /* data */
            getfield org.glassfish.grizzly.websockets.WebSocketMappingData.wrapper:Ljava/lang/Object;
            checkcast org.glassfish.grizzly.websockets.WebSocketApplication
            astore 4 /* foundWebSocketApp */
         8: .line 97
            goto 12
      StackMap locals: org.glassfish.grizzly.websockets.WebSocketEngine org.glassfish.grizzly.http.HttpRequestPacket org.glassfish.grizzly.http.server.util.Mapper int org.glassfish.grizzly.websockets.WebSocketApplication org.glassfish.grizzly.websockets.WebSocketMappingData
      StackMap stack: java.lang.Exception
         9: astore 6 /* e */
        start local 6 // java.lang.Exception e
        10: .line 98
            getstatic org.glassfish.grizzly.websockets.WebSocketEngine.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 12
        11: .line 99
            getstatic org.glassfish.grizzly.websockets.WebSocketEngine.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            aload 6 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            aload 6 /* e */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 6 // java.lang.Exception e
        12: .line 103
      StackMap locals:
      StackMap stack:
            aload 4 /* foundWebSocketApp */
            ifnonnull 19
        13: .line 104
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.applications:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 18
      StackMap locals: org.glassfish.grizzly.websockets.WebSocketEngine org.glassfish.grizzly.http.HttpRequestPacket org.glassfish.grizzly.http.server.util.Mapper int org.glassfish.grizzly.websockets.WebSocketApplication org.glassfish.grizzly.websockets.WebSocketMappingData top java.util.Iterator
      StackMap stack:
        14: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast org.glassfish.grizzly.websockets.WebSocketApplication
            astore 6 /* application */
        start local 6 // org.glassfish.grizzly.websockets.WebSocketApplication application
        15: .line 105
            aload 6 /* application */
            aload 1 /* request */
            invokevirtual org.glassfish.grizzly.websockets.WebSocketApplication.upgrade:(Lorg/glassfish/grizzly/http/HttpRequestPacket;)Z
            ifeq 18
        16: .line 106
            aload 6 /* application */
            astore 4 /* foundWebSocketApp */
        17: .line 107
            goto 19
        end local 6 // org.glassfish.grizzly.websockets.WebSocketApplication application
        18: .line 104
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 14
        19: .line 112
      StackMap locals: org.glassfish.grizzly.websockets.WebSocketEngine org.glassfish.grizzly.http.HttpRequestPacket org.glassfish.grizzly.http.server.util.Mapper int org.glassfish.grizzly.websockets.WebSocketApplication org.glassfish.grizzly.websockets.WebSocketMappingData
      StackMap stack:
            aload 4 /* foundWebSocketApp */
            ifnonnull 21
        20: .line 113
            aconst_null
            areturn
        21: .line 116
      StackMap locals:
      StackMap stack:
            iload 3 /* isGlassfish */
            ifeq 29
        22: .line 117
            getstatic org.glassfish.grizzly.websockets.WebSocketEngine.$assertionsDisabled:Z
            ifne 23
            aload 2 /* glassfishMapper */
            ifnonnull 23
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        23: .line 123
      StackMap locals:
      StackMap stack:
            aload 5 /* data */
            invokevirtual org.glassfish.grizzly.websockets.WebSocketMappingData.recycle:()V
        24: .line 124
            aload 2 /* glassfishMapper */
            aload 1 /* request */
            aload 1 /* request */
            invokevirtual org.glassfish.grizzly.http.HttpRequestPacket.getRequestURIRef:()Lorg/glassfish/grizzly/http/util/RequestURIRef;
            invokevirtual org.glassfish.grizzly.http.util.RequestURIRef.getDecodedRequestURIBC:()Lorg/glassfish/grizzly/http/util/DataChunk;
            aload 5 /* data */
            iconst_0
            invokevirtual org.glassfish.grizzly.http.server.util.Mapper.mapUriWithSemicolon:(Lorg/glassfish/grizzly/http/HttpRequestPacket;Lorg/glassfish/grizzly/http/util/DataChunk;Lorg/glassfish/grizzly/http/server/util/MappingData;I)V
        25: .line 125
            goto 29
      StackMap locals:
      StackMap stack: java.lang.Exception
        26: astore 6 /* e */
        start local 6 // java.lang.Exception e
        27: .line 126
            getstatic org.glassfish.grizzly.websockets.WebSocketEngine.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            invokevirtual java.util.logging.Logger.isLoggable:(Ljava/util/logging/Level;)Z
            ifeq 29
        28: .line 127
            getstatic org.glassfish.grizzly.websockets.WebSocketEngine.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
            aload 6 /* e */
            invokevirtual java.lang.Exception.toString:()Ljava/lang/String;
            aload 6 /* e */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        end local 6 // java.lang.Exception e
        29: .line 132
      StackMap locals:
      StackMap stack:
            new org.glassfish.grizzly.websockets.WebSocketEngine$WebSocketApplicationReg
            dup
            aload 4 /* foundWebSocketApp */
        30: .line 134
            aload 5 /* data */
            getfield org.glassfish.grizzly.websockets.WebSocketMappingData.contextPath:Lorg/glassfish/grizzly/http/util/DataChunk;
            invokevirtual org.glassfish.grizzly.http.util.DataChunk.isNull:()Z
            ifeq 31
            aconst_null
            goto 32
      StackMap locals: org.glassfish.grizzly.websockets.WebSocketEngine org.glassfish.grizzly.http.HttpRequestPacket org.glassfish.grizzly.http.server.util.Mapper int org.glassfish.grizzly.websockets.WebSocketApplication org.glassfish.grizzly.websockets.WebSocketMappingData
      StackMap stack: new 29 new 29 org.glassfish.grizzly.websockets.WebSocketApplication
        31: aload 5 /* data */
        32: .line 132
      StackMap locals: org.glassfish.grizzly.websockets.WebSocketEngine org.glassfish.grizzly.http.HttpRequestPacket org.glassfish.grizzly.http.server.util.Mapper int org.glassfish.grizzly.websockets.WebSocketApplication org.glassfish.grizzly.websockets.WebSocketMappingData
      StackMap stack: new 29 new 29 org.glassfish.grizzly.websockets.WebSocketApplication org.glassfish.grizzly.websockets.WebSocketMappingData
            invokespecial org.glassfish.grizzly.websockets.WebSocketEngine$WebSocketApplicationReg.<init>:(Lorg/glassfish/grizzly/websockets/WebSocketApplication;Lorg/glassfish/grizzly/websockets/WebSocketMappingData;)V
            areturn
        end local 5 // org.glassfish.grizzly.websockets.WebSocketMappingData data
        end local 4 // org.glassfish.grizzly.websockets.WebSocketApplication foundWebSocketApp
        end local 3 // boolean isGlassfish
        end local 2 // org.glassfish.grizzly.http.server.util.Mapper glassfishMapper
        end local 1 // org.glassfish.grizzly.http.HttpRequestPacket request
        end local 0 // org.glassfish.grizzly.websockets.WebSocketEngine this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   33     0               this  Lorg/glassfish/grizzly/websockets/WebSocketEngine;
            0   33     1            request  Lorg/glassfish/grizzly/http/HttpRequestPacket;
            0   33     2    glassfishMapper  Lorg/glassfish/grizzly/http/server/util/Mapper;
            3   33     3        isGlassfish  Z
            4   33     4  foundWebSocketApp  Lorg/glassfish/grizzly/websockets/WebSocketApplication;
            5   33     5               data  Lorg/glassfish/grizzly/websockets/WebSocketMappingData;
           10   12     6                  e  Ljava/lang/Exception;
           15   18     6        application  Lorg/glassfish/grizzly/websockets/WebSocketApplication;
           27   29     6                  e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           5     8       9  Class java.lang.Exception
          23    25      26  Class java.lang.Exception
    MethodParameters:
                 Name  Flags
      request          final
      glassfishMapper  final

  public boolean upgrade(org.glassfish.grizzly.filterchain.FilterChainContext, org.glassfish.grizzly.http.HttpContent);
    descriptor: (Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/http/HttpContent;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.glassfish.grizzly.websockets.WebSocketEngine this
        start local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        start local 2 // org.glassfish.grizzly.http.HttpContent requestContent
         0: .line 138
            aload 0 /* this */
            aload 1 /* ctx */
            aload 2 /* requestContent */
            aconst_null
            invokevirtual org.glassfish.grizzly.websockets.WebSocketEngine.upgrade:(Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/http/HttpContent;Lorg/glassfish/grizzly/http/server/util/Mapper;)Z
            ireturn
        end local 2 // org.glassfish.grizzly.http.HttpContent requestContent
        end local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        end local 0 // org.glassfish.grizzly.websockets.WebSocketEngine this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lorg/glassfish/grizzly/websockets/WebSocketEngine;
            0    1     1             ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0    1     2  requestContent  Lorg/glassfish/grizzly/http/HttpContent;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      ctx             
      requestContent  

  public boolean upgrade(org.glassfish.grizzly.filterchain.FilterChainContext, org.glassfish.grizzly.http.HttpContent, org.glassfish.grizzly.http.server.util.Mapper);
    descriptor: (Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/http/HttpContent;Lorg/glassfish/grizzly/http/server/util/Mapper;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=11, args_size=4
        start local 0 // org.glassfish.grizzly.websockets.WebSocketEngine this
        start local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        start local 2 // org.glassfish.grizzly.http.HttpContent requestContent
        start local 3 // org.glassfish.grizzly.http.server.util.Mapper mapper
         0: .line 143
            aload 2 /* requestContent */
            invokevirtual org.glassfish.grizzly.http.HttpContent.getHttpHeader:()Lorg/glassfish/grizzly/http/HttpHeader;
            checkcast org.glassfish.grizzly.http.HttpRequestPacket
            astore 4 /* request */
        start local 4 // org.glassfish.grizzly.http.HttpRequestPacket request
         1: .line 144
            invokestatic org.glassfish.grizzly.websockets.WebSocketEngine.getEngine:()Lorg/glassfish/grizzly/websockets/WebSocketEngine;
            aload 4 /* request */
            aload 3 /* mapper */
            invokevirtual org.glassfish.grizzly.websockets.WebSocketEngine.getApplication:(Lorg/glassfish/grizzly/http/HttpRequestPacket;Lorg/glassfish/grizzly/http/server/util/Mapper;)Lorg/glassfish/grizzly/websockets/WebSocketEngine$WebSocketApplicationReg;
            astore 5 /* reg */
        start local 5 // org.glassfish.grizzly.websockets.WebSocketEngine$WebSocketApplicationReg reg
         2: .line 146
            aconst_null
            astore 6 /* socket */
        start local 6 // org.glassfish.grizzly.websockets.WebSocket socket
         3: .line 148
            aload 5 /* reg */
            ifnull 26
         4: .line 149
            aload 4 /* request */
            invokevirtual org.glassfish.grizzly.http.HttpRequestPacket.getHeaders:()Lorg/glassfish/grizzly/http/util/MimeHeaders;
            invokestatic org.glassfish.grizzly.websockets.WebSocketEngine.loadHandler:(Lorg/glassfish/grizzly/http/util/MimeHeaders;)Lorg/glassfish/grizzly/websockets/ProtocolHandler;
            astore 7 /* protocolHandler */
        start local 7 // org.glassfish.grizzly.websockets.ProtocolHandler protocolHandler
         5: .line 150
            aload 7 /* protocolHandler */
            ifnonnull 8
         6: .line 151
            aload 0 /* this */
            aload 1 /* ctx */
            aload 4 /* request */
            invokevirtual org.glassfish.grizzly.websockets.WebSocketEngine.handleUnsupportedVersion:(Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/http/HttpRequestPacket;)V
         7: .line 152
            iconst_0
            ireturn
         8: .line 154
      StackMap locals: org.glassfish.grizzly.websockets.WebSocketEngine org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.http.HttpContent org.glassfish.grizzly.http.server.util.Mapper org.glassfish.grizzly.http.HttpRequestPacket org.glassfish.grizzly.websockets.WebSocketEngine$WebSocketApplicationReg org.glassfish.grizzly.websockets.WebSocket org.glassfish.grizzly.websockets.ProtocolHandler
      StackMap stack:
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.getConnection:()Lorg/glassfish/grizzly/Connection;
            astore 8 /* connection */
        start local 8 // org.glassfish.grizzly.Connection connection
         9: .line 155
            aload 7 /* protocolHandler */
            aload 1 /* ctx */
            invokevirtual org.glassfish.grizzly.websockets.ProtocolHandler.setFilterChainContext:(Lorg/glassfish/grizzly/filterchain/FilterChainContext;)V
        10: .line 156
            aload 7 /* protocolHandler */
            aload 8 /* connection */
            invokevirtual org.glassfish.grizzly.websockets.ProtocolHandler.setConnection:(Lorg/glassfish/grizzly/Connection;)V
        11: .line 157
            aload 7 /* protocolHandler */
            aload 5 /* reg */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine$WebSocketApplicationReg.mappingData:Lorg/glassfish/grizzly/websockets/WebSocketMappingData;
            invokevirtual org.glassfish.grizzly.websockets.ProtocolHandler.setMappingData:(Lorg/glassfish/grizzly/websockets/WebSocketMappingData;)V
        12: .line 159
            aload 1 /* ctx */
            aconst_null
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.setMessage:(Ljava/lang/Object;)V
        13: .line 161
            aload 5 /* reg */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine$WebSocketApplicationReg.app:Lorg/glassfish/grizzly/websockets/WebSocketApplication;
            astore 9 /* app */
        start local 9 // org.glassfish.grizzly.websockets.WebSocketApplication app
        14: .line 162
            aload 9 /* app */
            aload 7 /* protocolHandler */
            aload 4 /* request */
            iconst_1
            anewarray org.glassfish.grizzly.websockets.WebSocketListener
            dup
            iconst_0
            aload 9 /* app */
            aastore
            invokevirtual org.glassfish.grizzly.websockets.WebSocketApplication.createSocket:(Lorg/glassfish/grizzly/websockets/ProtocolHandler;Lorg/glassfish/grizzly/http/HttpRequestPacket;[Lorg/glassfish/grizzly/websockets/WebSocketListener;)Lorg/glassfish/grizzly/websockets/WebSocket;
            astore 6 /* socket */
        15: .line 163
            aload 8 /* connection */
            aload 7 /* protocolHandler */
            aload 6 /* socket */
            invokestatic org.glassfish.grizzly.websockets.WebSocketHolder.set:(Lorg/glassfish/grizzly/Connection;Lorg/glassfish/grizzly/websockets/ProtocolHandler;Lorg/glassfish/grizzly/websockets/WebSocket;)Lorg/glassfish/grizzly/websockets/WebSocketHolder;
            astore 10 /* holder */
        start local 10 // org.glassfish.grizzly.websockets.WebSocketHolder holder
        16: .line 164
            aload 10 /* holder */
            aload 9 /* app */
            putfield org.glassfish.grizzly.websockets.WebSocketHolder.application:Lorg/glassfish/grizzly/websockets/WebSocketApplication;
        17: .line 165
            aload 7 /* protocolHandler */
            aload 1 /* ctx */
            aload 9 /* app */
            aload 2 /* requestContent */
            invokevirtual org.glassfish.grizzly.websockets.ProtocolHandler.handshake:(Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/websockets/WebSocketApplication;Lorg/glassfish/grizzly/http/HttpContent;)Lorg/glassfish/grizzly/websockets/HandShake;
            pop
        18: .line 166
            aload 4 /* request */
            invokevirtual org.glassfish.grizzly.http.HttpRequestPacket.getConnection:()Lorg/glassfish/grizzly/Connection;
            new org.glassfish.grizzly.websockets.WebSocketEngine$1
            dup
            aload 0 /* this */
            aload 8 /* connection */
            invokespecial org.glassfish.grizzly.websockets.WebSocketEngine$1.<init>:(Lorg/glassfish/grizzly/websockets/WebSocketEngine;Lorg/glassfish/grizzly/Connection;)V
            invokeinterface org.glassfish.grizzly.Connection.addCloseListener:(Lorg/glassfish/grizzly/CloseListener;)V
        19: .line 175
            aload 6 /* socket */
            invokeinterface org.glassfish.grizzly.websockets.WebSocket.onConnect:()V
        20: .line 176
            iconst_1
            ireturn
        end local 10 // org.glassfish.grizzly.websockets.WebSocketHolder holder
        end local 9 // org.glassfish.grizzly.websockets.WebSocketApplication app
        end local 8 // org.glassfish.grizzly.Connection connection
        end local 7 // org.glassfish.grizzly.websockets.ProtocolHandler protocolHandler
        21: .line 178
      StackMap locals: org.glassfish.grizzly.websockets.WebSocketEngine org.glassfish.grizzly.filterchain.FilterChainContext org.glassfish.grizzly.http.HttpContent org.glassfish.grizzly.http.server.util.Mapper org.glassfish.grizzly.http.HttpRequestPacket org.glassfish.grizzly.websockets.WebSocketEngine$WebSocketApplicationReg org.glassfish.grizzly.websockets.WebSocket
      StackMap stack: org.glassfish.grizzly.websockets.HandshakeException
            astore 7 /* e */
        start local 7 // org.glassfish.grizzly.websockets.HandshakeException e
        22: .line 179
            getstatic org.glassfish.grizzly.websockets.WebSocketEngine.logger:Ljava/util/logging/Logger;
            getstatic java.util.logging.Level.FINE:Ljava/util/logging/Level;
            aload 7 /* e */
            invokevirtual org.glassfish.grizzly.websockets.HandshakeException.getMessage:()Ljava/lang/String;
            aload 7 /* e */
            invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
        23: .line 180
            aload 6 /* socket */
            ifnull 25
        24: .line 181
            aload 6 /* socket */
            invokeinterface org.glassfish.grizzly.websockets.WebSocket.close:()V
        25: .line 184
      StackMap locals: org.glassfish.grizzly.websockets.HandshakeException
      StackMap stack:
            aload 7 /* e */
            athrow
        end local 7 // org.glassfish.grizzly.websockets.HandshakeException e
        26: .line 187
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 6 // org.glassfish.grizzly.websockets.WebSocket socket
        end local 5 // org.glassfish.grizzly.websockets.WebSocketEngine$WebSocketApplicationReg reg
        end local 4 // org.glassfish.grizzly.http.HttpRequestPacket request
        end local 3 // org.glassfish.grizzly.http.server.util.Mapper mapper
        end local 2 // org.glassfish.grizzly.http.HttpContent requestContent
        end local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        end local 0 // org.glassfish.grizzly.websockets.WebSocketEngine this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   27     0             this  Lorg/glassfish/grizzly/websockets/WebSocketEngine;
            0   27     1              ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0   27     2   requestContent  Lorg/glassfish/grizzly/http/HttpContent;
            0   27     3           mapper  Lorg/glassfish/grizzly/http/server/util/Mapper;
            1   27     4          request  Lorg/glassfish/grizzly/http/HttpRequestPacket;
            2   27     5              reg  Lorg/glassfish/grizzly/websockets/WebSocketEngine$WebSocketApplicationReg;
            3   27     6           socket  Lorg/glassfish/grizzly/websockets/WebSocket;
            5   21     7  protocolHandler  Lorg/glassfish/grizzly/websockets/ProtocolHandler;
            9   21     8       connection  Lorg/glassfish/grizzly/Connection;
           14   21     9              app  Lorg/glassfish/grizzly/websockets/WebSocketApplication;
           16   21    10           holder  Lorg/glassfish/grizzly/websockets/WebSocketHolder;
           22   26     7                e  Lorg/glassfish/grizzly/websockets/HandshakeException;
      Exception table:
        from    to  target  type
           3     7      21  Class org.glassfish.grizzly.websockets.HandshakeException
           8    20      21  Class org.glassfish.grizzly.websockets.HandshakeException
    Exceptions:
      throws java.io.IOException
    MethodParameters:
                Name  Flags
      ctx             
      requestContent  
      mapper          

  public static org.glassfish.grizzly.websockets.ProtocolHandler loadHandler(org.glassfish.grizzly.http.util.MimeHeaders);
    descriptor: (Lorg/glassfish/grizzly/http/util/MimeHeaders;)Lorg/glassfish/grizzly/websockets/ProtocolHandler;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // org.glassfish.grizzly.http.util.MimeHeaders headers
         0: .line 191
            invokestatic org.glassfish.grizzly.websockets.Version.values:()[Lorg/glassfish/grizzly/websockets/Version;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 5
      StackMap locals: org.glassfish.grizzly.http.util.MimeHeaders top int int org.glassfish.grizzly.websockets.Version[]
      StackMap stack:
         1: aload 4
            iload 2
            aaload
            astore 1 /* version */
        start local 1 // org.glassfish.grizzly.websockets.Version version
         2: .line 192
            aload 1 /* version */
            aload 0 /* headers */
            invokevirtual org.glassfish.grizzly.websockets.Version.validate:(Lorg/glassfish/grizzly/http/util/MimeHeaders;)Z
            ifeq 4
         3: .line 193
            aload 1 /* version */
            iconst_0
            invokevirtual org.glassfish.grizzly.websockets.Version.createHandler:(Z)Lorg/glassfish/grizzly/websockets/ProtocolHandler;
            areturn
        end local 1 // org.glassfish.grizzly.websockets.Version version
         4: .line 191
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 1
         6: .line 196
            aconst_null
            areturn
        end local 0 // org.glassfish.grizzly.http.util.MimeHeaders headers
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  headers  Lorg/glassfish/grizzly/http/util/MimeHeaders;
            2    4     1  version  Lorg/glassfish/grizzly/websockets/Version;
    MethodParameters:
         Name  Flags
      headers  

  public synchronized void register(java.lang.String, java.lang.String, org.glassfish.grizzly.websockets.WebSocketApplication);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Lorg/glassfish/grizzly/websockets/WebSocketApplication;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // org.glassfish.grizzly.websockets.WebSocketEngine this
        start local 1 // java.lang.String contextPath
        start local 2 // java.lang.String urlPattern
        start local 3 // org.glassfish.grizzly.websockets.WebSocketApplication app
         0: .line 233
            aload 1 /* contextPath */
            ifnull 1
            aload 2 /* urlPattern */
            ifnonnull 2
         1: .line 234
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "contextPath and urlPattern must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 237
      StackMap locals:
      StackMap stack:
            aload 2 /* urlPattern */
            ldc "/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 4
         3: .line 238
            new java.lang.IllegalArgumentException
            dup
            ldc "The urlPattern must start with '/'"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 241
      StackMap locals:
      StackMap stack:
            aload 1 /* contextPath */
            invokestatic org.glassfish.grizzly.websockets.WebSocketEngine.getContextPath:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* contextPathLocal */
        start local 4 // java.lang.String contextPathLocal
         5: .line 242
            new java.lang.StringBuilder
            dup
            aload 4 /* contextPathLocal */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            bipush 124
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            aload 2 /* urlPattern */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 5 /* fullPath */
        start local 5 // java.lang.String fullPath
         6: .line 244
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.fullPathToApplication:Ljava/util/HashMap;
            aload 5 /* fullPath */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.glassfish.grizzly.websockets.WebSocketApplication
            astore 6 /* oldApp */
        start local 6 // org.glassfish.grizzly.websockets.WebSocketApplication oldApp
         7: .line 245
            aload 6 /* oldApp */
            ifnull 9
         8: .line 246
            aload 0 /* this */
            aload 6 /* oldApp */
            invokevirtual org.glassfish.grizzly.websockets.WebSocketEngine.unregister:(Lorg/glassfish/grizzly/websockets/WebSocketApplication;)V
         9: .line 249
      StackMap locals: java.lang.String java.lang.String org.glassfish.grizzly.websockets.WebSocketApplication
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.mapper:Lorg/glassfish/grizzly/http/server/util/Mapper;
            ldc "localhost"
            aload 4 /* contextPathLocal */
            new java.lang.StringBuilder
            dup
            ldc "[Context '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* contextPath */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "']"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            getstatic org.glassfish.grizzly.websockets.WebSocketEngine.EMPTY_STRING_ARRAY:[Ljava/lang/String;
            aconst_null
            invokevirtual org.glassfish.grizzly.http.server.util.Mapper.addContext:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/String;Lorg/glassfish/grizzly/http/server/naming/NamingContext;)V
        10: .line 250
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.mapper:Lorg/glassfish/grizzly/http/server/util/Mapper;
            ldc "localhost"
            aload 4 /* contextPathLocal */
            aload 2 /* urlPattern */
            aload 3 /* app */
            invokevirtual org.glassfish.grizzly.http.server.util.Mapper.addWrapper:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)V
        11: .line 251
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.applicationMap:Ljava/util/HashMap;
            aload 3 /* app */
            aload 5 /* fullPath */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        12: .line 252
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.fullPathToApplication:Ljava/util/HashMap;
            aload 5 /* fullPath */
            aload 3 /* app */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 253
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.contextApplications:Ljava/util/HashMap;
            aload 4 /* contextPathLocal */
            invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 16
        14: .line 254
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.contextApplications:Ljava/util/HashMap;
            aload 4 /* contextPathLocal */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            aload 3 /* app */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        15: .line 255
            goto 19
        16: .line 256
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            iconst_4
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 7 /* apps */
        start local 7 // java.util.List apps
        17: .line 257
            aload 7 /* apps */
            aload 3 /* app */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        18: .line 258
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.contextApplications:Ljava/util/HashMap;
            aload 4 /* contextPathLocal */
            aload 7 /* apps */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 7 // java.util.List apps
        19: .line 260
      StackMap locals:
      StackMap stack:
            return
        end local 6 // org.glassfish.grizzly.websockets.WebSocketApplication oldApp
        end local 5 // java.lang.String fullPath
        end local 4 // java.lang.String contextPathLocal
        end local 3 // org.glassfish.grizzly.websockets.WebSocketApplication app
        end local 2 // java.lang.String urlPattern
        end local 1 // java.lang.String contextPath
        end local 0 // org.glassfish.grizzly.websockets.WebSocketEngine this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   20     0              this  Lorg/glassfish/grizzly/websockets/WebSocketEngine;
            0   20     1       contextPath  Ljava/lang/String;
            0   20     2        urlPattern  Ljava/lang/String;
            0   20     3               app  Lorg/glassfish/grizzly/websockets/WebSocketApplication;
            5   20     4  contextPathLocal  Ljava/lang/String;
            6   20     5          fullPath  Ljava/lang/String;
            7   20     6            oldApp  Lorg/glassfish/grizzly/websockets/WebSocketApplication;
           17   19     7              apps  Ljava/util/List<Lorg/glassfish/grizzly/websockets/WebSocketApplication;>;
    MethodParameters:
             Name  Flags
      contextPath  final
      urlPattern   final
      app          final

  public synchronized void register(org.glassfish.grizzly.websockets.WebSocketApplication);
    descriptor: (Lorg/glassfish/grizzly/websockets/WebSocketApplication;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.glassfish.grizzly.websockets.WebSocketEngine this
        start local 1 // org.glassfish.grizzly.websockets.WebSocketApplication app
         0: .line 268
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.applications:Ljava/util/List;
            aload 1 /* app */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 269
            return
        end local 1 // org.glassfish.grizzly.websockets.WebSocketApplication app
        end local 0 // org.glassfish.grizzly.websockets.WebSocketEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/glassfish/grizzly/websockets/WebSocketEngine;
            0    2     1   app  Lorg/glassfish/grizzly/websockets/WebSocketApplication;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      app   

  public synchronized void unregister(org.glassfish.grizzly.websockets.WebSocketApplication);
    descriptor: (Lorg/glassfish/grizzly/websockets/WebSocketApplication;)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // org.glassfish.grizzly.websockets.WebSocketEngine this
        start local 1 // org.glassfish.grizzly.websockets.WebSocketApplication app
         0: .line 272
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.applicationMap:Ljava/util/HashMap;
            aload 1 /* app */
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* fullPath */
        start local 2 // java.lang.String fullPath
         1: .line 273
            aload 2 /* fullPath */
            ifnull 11
         2: .line 274
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.fullPathToApplication:Ljava/util/HashMap;
            aload 2 /* fullPath */
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 275
            aload 2 /* fullPath */
            ldc "\\|"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 3 /* parts */
        start local 3 // java.lang.String[] parts
         4: .line 276
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.mapper:Lorg/glassfish/grizzly/http/server/util/Mapper;
            ldc "localhost"
            aload 3 /* parts */
            iconst_0
            aaload
            aload 3 /* parts */
            iconst_1
            aaload
            invokevirtual org.glassfish.grizzly.http.server.util.Mapper.removeWrapper:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         5: .line 277
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.contextApplications:Ljava/util/HashMap;
            aload 3 /* parts */
            iconst_0
            aaload
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            astore 4 /* apps */
        start local 4 // java.util.List apps
         6: .line 278
            aload 4 /* apps */
            aload 1 /* app */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
         7: .line 279
            aload 4 /* apps */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 10
         8: .line 280
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.mapper:Lorg/glassfish/grizzly/http/server/util/Mapper;
            ldc "localhost"
            aload 3 /* parts */
            iconst_0
            aaload
            invokevirtual org.glassfish.grizzly.http.server.util.Mapper.removeContext:(Ljava/lang/String;Ljava/lang/String;)V
         9: .line 281
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.contextApplications:Ljava/util/HashMap;
            aload 3 /* parts */
            iconst_0
            aaload
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 283
      StackMap locals: java.lang.String java.lang.String[] java.util.List
      StackMap stack:
            return
        end local 4 // java.util.List apps
        end local 3 // java.lang.String[] parts
        11: .line 285
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.applications:Ljava/util/List;
            aload 1 /* app */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
        12: .line 286
            return
        end local 2 // java.lang.String fullPath
        end local 1 // org.glassfish.grizzly.websockets.WebSocketApplication app
        end local 0 // org.glassfish.grizzly.websockets.WebSocketEngine this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   13     0      this  Lorg/glassfish/grizzly/websockets/WebSocketEngine;
            0   13     1       app  Lorg/glassfish/grizzly/websockets/WebSocketApplication;
            1   13     2  fullPath  Ljava/lang/String;
            4   11     3     parts  [Ljava/lang/String;
            6   11     4      apps  Ljava/util/List<Lorg/glassfish/grizzly/websockets/WebSocketApplication;>;
    MethodParameters:
      Name  Flags
      app   

  public synchronized void unregisterAll();
    descriptor: ()V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.glassfish.grizzly.websockets.WebSocketEngine this
         0: .line 292
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.applicationMap:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.clear:()V
         1: .line 293
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.fullPathToApplication:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.clear:()V
         2: .line 294
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.contextApplications:Ljava/util/HashMap;
            invokevirtual java.util.HashMap.clear:()V
         3: .line 295
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.applications:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         4: .line 296
            aload 0 /* this */
            new org.glassfish.grizzly.http.server.util.Mapper
            dup
            invokespecial org.glassfish.grizzly.http.server.util.Mapper.<init>:()V
            putfield org.glassfish.grizzly.websockets.WebSocketEngine.mapper:Lorg/glassfish/grizzly/http/server/util/Mapper;
         5: .line 297
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.mapper:Lorg/glassfish/grizzly/http/server/util/Mapper;
            ldc "localhost"
            invokevirtual org.glassfish.grizzly.http.server.util.Mapper.setDefaultHostName:(Ljava/lang/String;)V
         6: .line 298
            return
        end local 0 // org.glassfish.grizzly.websockets.WebSocketEngine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lorg/glassfish/grizzly/websockets/WebSocketEngine;

  private void handleUnsupportedVersion(org.glassfish.grizzly.filterchain.FilterChainContext, org.glassfish.grizzly.http.HttpRequestPacket);
    descriptor: (Lorg/glassfish/grizzly/filterchain/FilterChainContext;Lorg/glassfish/grizzly/http/HttpRequestPacket;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.glassfish.grizzly.websockets.WebSocketEngine this
        start local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        start local 2 // org.glassfish.grizzly.http.HttpRequestPacket request
         0: .line 301
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.unsupportedVersionsResponseBuilder:Lorg/glassfish/grizzly/http/HttpResponsePacket$Builder;
            aload 2 /* request */
            invokevirtual org.glassfish.grizzly.http.HttpResponsePacket$Builder.requestPacket:(Lorg/glassfish/grizzly/http/HttpRequestPacket;)Lorg/glassfish/grizzly/http/HttpResponsePacket$Builder;
            pop
         1: .line 302
            aload 1 /* ctx */
            aload 0 /* this */
            getfield org.glassfish.grizzly.websockets.WebSocketEngine.unsupportedVersionsResponseBuilder:Lorg/glassfish/grizzly/http/HttpResponsePacket$Builder;
            invokevirtual org.glassfish.grizzly.http.HttpResponsePacket$Builder.build:()Lorg/glassfish/grizzly/http/HttpResponsePacket;
            invokevirtual org.glassfish.grizzly.filterchain.FilterChainContext.write:(Ljava/lang/Object;)V
         2: .line 303
            return
        end local 2 // org.glassfish.grizzly.http.HttpRequestPacket request
        end local 1 // org.glassfish.grizzly.filterchain.FilterChainContext ctx
        end local 0 // org.glassfish.grizzly.websockets.WebSocketEngine this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/glassfish/grizzly/websockets/WebSocketEngine;
            0    3     1      ctx  Lorg/glassfish/grizzly/filterchain/FilterChainContext;
            0    3     2  request  Lorg/glassfish/grizzly/http/HttpRequestPacket;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      ctx      final
      request  final

  private static java.lang.String getContextPath(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.lang.String mapping
         0: .line 307
            aload 0 /* mapping */
            ldc "/"
            iconst_1
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;I)I
            istore 2 /* slash */
        start local 2 // int slash
         1: .line 308
            iload 2 /* slash */
            iconst_m1
            if_icmpeq 4
         2: .line 309
            aload 0 /* mapping */
            iconst_0
            iload 2 /* slash */
            invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
            astore 1 /* ctx */
        start local 1 // java.lang.String ctx
         3: .line 310
            goto 5
        end local 1 // java.lang.String ctx
         4: .line 311
      StackMap locals: java.lang.String top int
      StackMap stack:
            aload 0 /* mapping */
            astore 1 /* ctx */
        start local 1 // java.lang.String ctx
         5: .line 314
      StackMap locals: java.lang.String java.lang.String int
      StackMap stack:
            aload 1 /* ctx */
            ldc "/*."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 6
            aload 1 /* ctx */
            ldc "*."
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 10
         6: .line 315
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            ldc "/"
            invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
            aload 1 /* ctx */
            ldc "/"
            invokevirtual java.lang.String.lastIndexOf:(Ljava/lang/String;)I
            if_icmpne 9
         7: .line 316
            ldc ""
            astore 1 /* ctx */
         8: .line 317
            goto 10
         9: .line 318
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            iconst_1
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 1 /* ctx */
        10: .line 322
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            ldc "/*"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 11
            aload 1 /* ctx */
            ldc "*"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 12
        11: .line 323
      StackMap locals:
      StackMap stack:
            ldc ""
            astore 1 /* ctx */
        12: .line 327
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            ldc "/"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        13: .line 328
            ldc ""
            astore 1 /* ctx */
        14: .line 331
      StackMap locals:
      StackMap stack:
            aload 1 /* ctx */
            areturn
        end local 2 // int slash
        end local 1 // java.lang.String ctx
        end local 0 // java.lang.String mapping
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0  mapping  Ljava/lang/String;
            3    4     1      ctx  Ljava/lang/String;
            5   15     1      ctx  Ljava/lang/String;
            1   15     2    slash  I
    MethodParameters:
         Name  Flags
      mapping  
}
SourceFile: "WebSocketEngine.java"
NestMembers:
  org.glassfish.grizzly.websockets.WebSocketEngine$1  org.glassfish.grizzly.websockets.WebSocketEngine$WebSocketApplicationReg
InnerClasses:
  public abstract Builder = org.glassfish.grizzly.http.HttpHeader$Builder of org.glassfish.grizzly.http.HttpHeader
  public Builder = org.glassfish.grizzly.http.HttpResponsePacket$Builder of org.glassfish.grizzly.http.HttpResponsePacket
  org.glassfish.grizzly.websockets.WebSocketEngine$1
  private WebSocketApplicationReg = org.glassfish.grizzly.websockets.WebSocketEngine$WebSocketApplicationReg of org.glassfish.grizzly.websockets.WebSocketEngine