public abstract class io.vertx.core.http.impl.WebSocketImplBase<S extends io.vertx.core.http.WebSocketBase> implements io.vertx.core.http.impl.WebSocketInternal
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: io.vertx.core.http.impl.WebSocketImplBase
  super_class: java.lang.Object
{
  private final boolean supportsContinuation;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String textHandlerID;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String binaryHandlerID;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int maxWebSocketFrameSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int maxWebSocketMessageSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.vertx.core.streams.impl.InboundBuffer<io.vertx.core.http.impl.ws.WebSocketFrameInternal> pending;
    descriptor: Lio/vertx/core/streams/impl/InboundBuffer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lio/vertx/core/streams/impl/InboundBuffer<Lio/vertx/core/http/impl/ws/WebSocketFrameInternal;>;

  private io.netty.channel.ChannelHandlerContext chctx;
    descriptor: Lio/netty/channel/ChannelHandlerContext;
    flags: (0x0002) ACC_PRIVATE

  protected final io.vertx.core.impl.ContextInternal context;
    descriptor: Lio/vertx/core/impl/ContextInternal;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  private io.vertx.core.eventbus.MessageConsumer binaryHandlerRegistration;
    descriptor: Lio/vertx/core/eventbus/MessageConsumer;
    flags: (0x0002) ACC_PRIVATE

  private io.vertx.core.eventbus.MessageConsumer textHandlerRegistration;
    descriptor: Lio/vertx/core/eventbus/MessageConsumer;
    flags: (0x0002) ACC_PRIVATE

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

  private java.lang.Object metric;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  private io.vertx.core.Handler<io.vertx.core.buffer.Buffer> handler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/vertx/core/Handler<Lio/vertx/core/buffer/Buffer;>;

  private io.vertx.core.Handler<io.vertx.core.http.impl.ws.WebSocketFrameInternal> frameHandler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/vertx/core/Handler<Lio/vertx/core/http/impl/ws/WebSocketFrameInternal;>;

  private io.vertx.core.Handler<io.vertx.core.buffer.Buffer> pongHandler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/vertx/core/Handler<Lio/vertx/core/buffer/Buffer;>;

  private io.vertx.core.Handler<java.lang.Void> drainHandler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/vertx/core/Handler<Ljava/lang/Void;>;

  private io.vertx.core.Handler<java.lang.Throwable> exceptionHandler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/vertx/core/Handler<Ljava/lang/Throwable;>;

  private io.vertx.core.Handler<java.lang.Void> closeHandler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/vertx/core/Handler<Ljava/lang/Void;>;

  private io.vertx.core.Handler<java.lang.Void> endHandler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/vertx/core/Handler<Ljava/lang/Void;>;

  protected final io.vertx.core.http.impl.Http1xConnectionBase conn;
    descriptor: Lio/vertx/core/http/impl/Http1xConnectionBase;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

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

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

  private java.lang.Short closeStatusCode;
    descriptor: Ljava/lang/Short;
    flags: (0x0002) ACC_PRIVATE

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

  private io.vertx.core.MultiMap headers;
    descriptor: Lio/vertx/core/MultiMap;
    flags: (0x0002) ACC_PRIVATE

  private static volatile int[] $SWITCH_TABLE$io$vertx$core$http$impl$FrameType;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

  void <init>(io.vertx.core.impl.ContextInternal, io.vertx.core.http.impl.Http1xConnectionBase, boolean, int, int);
    descriptor: (Lio/vertx/core/impl/ContextInternal;Lio/vertx/core/http/impl/Http1xConnectionBase;ZII)V
    flags: (0x0000) 
    Code:
      stack=4, locals=6, args_size=6
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.impl.ContextInternal context
        start local 2 // io.vertx.core.http.impl.Http1xConnectionBase conn
        start local 3 // boolean supportsContinuation
        start local 4 // int maxWebSocketFrameSize
        start local 5 // int maxWebSocketMessageSize
         0: .line 89
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 91
            aload 0 /* this */
            iload 3 /* supportsContinuation */
            putfield io.vertx.core.http.impl.WebSocketImplBase.supportsContinuation:Z
         2: .line 92
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "__vertx.ws."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            invokestatic java.util.UUID.randomUUID:()Ljava/util/UUID;
            invokevirtual java.util.UUID.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield io.vertx.core.http.impl.WebSocketImplBase.textHandlerID:Ljava/lang/String;
         3: .line 93
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            ldc "__vertx.ws."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            invokestatic java.util.UUID.randomUUID:()Ljava/util/UUID;
            invokevirtual java.util.UUID.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield io.vertx.core.http.impl.WebSocketImplBase.binaryHandlerID:Ljava/lang/String;
         4: .line 94
            aload 0 /* this */
            aload 2 /* conn */
            putfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
         5: .line 95
            aload 0 /* this */
            aload 1 /* context */
            putfield io.vertx.core.http.impl.WebSocketImplBase.context:Lio/vertx/core/impl/ContextInternal;
         6: .line 96
            aload 0 /* this */
            iload 4 /* maxWebSocketFrameSize */
            putfield io.vertx.core.http.impl.WebSocketImplBase.maxWebSocketFrameSize:I
         7: .line 97
            aload 0 /* this */
            iload 5 /* maxWebSocketMessageSize */
            putfield io.vertx.core.http.impl.WebSocketImplBase.maxWebSocketMessageSize:I
         8: .line 98
            aload 0 /* this */
            new io.vertx.core.streams.impl.InboundBuffer
            dup
            aload 1 /* context */
            invokespecial io.vertx.core.streams.impl.InboundBuffer.<init>:(Lio/vertx/core/Context;)V
            putfield io.vertx.core.http.impl.WebSocketImplBase.pending:Lio/vertx/core/streams/impl/InboundBuffer;
         9: .line 99
            aload 0 /* this */
            aload 2 /* conn */
            invokevirtual io.vertx.core.http.impl.Http1xConnectionBase.isNotWritable:()Z
            ifeq 10
            iconst_0
            goto 11
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase io.vertx.core.impl.ContextInternal io.vertx.core.http.impl.Http1xConnectionBase int int int
      StackMap stack: io.vertx.core.http.impl.WebSocketImplBase
        10: iconst_1
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase io.vertx.core.impl.ContextInternal io.vertx.core.http.impl.Http1xConnectionBase int int int
      StackMap stack: io.vertx.core.http.impl.WebSocketImplBase int
        11: putfield io.vertx.core.http.impl.WebSocketImplBase.writable:Z
        12: .line 100
            aload 0 /* this */
            aload 2 /* conn */
            invokevirtual io.vertx.core.http.impl.Http1xConnectionBase.channelHandlerContext:()Lio/netty/channel/ChannelHandlerContext;
            putfield io.vertx.core.http.impl.WebSocketImplBase.chctx:Lio/netty/channel/ChannelHandlerContext;
        13: .line 102
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.pending:Lio/vertx/core/streams/impl/InboundBuffer;
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/core/http/impl/WebSocketImplBase;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/core/http/impl/WebSocketImplBase.receiveFrame(Lio/vertx/core/http/impl/ws/WebSocketFrameInternal;)V (7)
                  (Lio/vertx/core/http/impl/ws/WebSocketFrameInternal;)V
            invokevirtual io.vertx.core.streams.impl.InboundBuffer.handler:(Lio/vertx/core/Handler;)Lio/vertx/core/streams/impl/InboundBuffer;
            pop
        14: .line 103
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.pending:Lio/vertx/core/streams/impl/InboundBuffer;
            aload 2 /* conn */
            invokedynamic handle(Lio/vertx/core/http/impl/Http1xConnectionBase;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/core/http/impl/WebSocketImplBase.lambda$1(Lio/vertx/core/http/impl/Http1xConnectionBase;Ljava/lang/Void;)V (6)
                  (Ljava/lang/Void;)V
            invokevirtual io.vertx.core.streams.impl.InboundBuffer.drainHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/streams/impl/InboundBuffer;
            pop
        15: .line 104
            return
        end local 5 // int maxWebSocketMessageSize
        end local 4 // int maxWebSocketFrameSize
        end local 3 // boolean supportsContinuation
        end local 2 // io.vertx.core.http.impl.Http1xConnectionBase conn
        end local 1 // io.vertx.core.impl.ContextInternal context
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   16     0                     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0   16     1                  context  Lio/vertx/core/impl/ContextInternal;
            0   16     2                     conn  Lio/vertx/core/http/impl/Http1xConnectionBase;
            0   16     3     supportsContinuation  Z
            0   16     4    maxWebSocketFrameSize  I
            0   16     5  maxWebSocketMessageSize  I
    MethodParameters:
                         Name  Flags
      context                  
      conn                     
      supportsContinuation     
      maxWebSocketFrameSize    
      maxWebSocketMessageSize  

  void registerHandler(io.vertx.core.eventbus.EventBus);
    descriptor: (Lio/vertx/core/eventbus/EventBus;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.eventbus.EventBus eventBus
         0: .line 107
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/core/http/impl/WebSocketImplBase;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/core/http/impl/WebSocketImplBase.lambda$2(Lio/vertx/core/eventbus/Message;)V (7)
                  (Lio/vertx/core/eventbus/Message;)V
            astore 2 /* binaryHandler */
        start local 2 // io.vertx.core.Handler binaryHandler
         1: .line 108
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/core/http/impl/WebSocketImplBase;)Lio/vertx/core/Handler;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)V
                  io/vertx/core/http/impl/WebSocketImplBase.lambda$3(Lio/vertx/core/eventbus/Message;)V (7)
                  (Lio/vertx/core/eventbus/Message;)V
            astore 3 /* textHandler */
        start local 3 // io.vertx.core.Handler textHandler
         2: .line 109
            aload 0 /* this */
            aload 1 /* eventBus */
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.binaryHandlerID:Ljava/lang/String;
            invokeinterface io.vertx.core.eventbus.EventBus.localConsumer:(Ljava/lang/String;)Lio/vertx/core/eventbus/MessageConsumer;
            aload 2 /* binaryHandler */
            invokeinterface io.vertx.core.eventbus.MessageConsumer.handler:(Lio/vertx/core/Handler;)Lio/vertx/core/eventbus/MessageConsumer;
            putfield io.vertx.core.http.impl.WebSocketImplBase.binaryHandlerRegistration:Lio/vertx/core/eventbus/MessageConsumer;
         3: .line 110
            aload 0 /* this */
            aload 1 /* eventBus */
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.textHandlerID:Ljava/lang/String;
            invokeinterface io.vertx.core.eventbus.EventBus.localConsumer:(Ljava/lang/String;)Lio/vertx/core/eventbus/MessageConsumer;
            aload 3 /* textHandler */
            invokeinterface io.vertx.core.eventbus.MessageConsumer.handler:(Lio/vertx/core/Handler;)Lio/vertx/core/eventbus/MessageConsumer;
            putfield io.vertx.core.http.impl.WebSocketImplBase.textHandlerRegistration:Lio/vertx/core/eventbus/MessageConsumer;
         4: .line 111
            return
        end local 3 // io.vertx.core.Handler textHandler
        end local 2 // io.vertx.core.Handler binaryHandler
        end local 1 // io.vertx.core.eventbus.EventBus eventBus
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    5     1       eventBus  Lio/vertx/core/eventbus/EventBus;
            1    5     2  binaryHandler  Lio/vertx/core/Handler<Lio/vertx/core/eventbus/Message<Lio/vertx/core/buffer/Buffer;>;>;
            2    5     3    textHandler  Lio/vertx/core/Handler<Lio/vertx/core/eventbus/Message<Ljava/lang/String;>;>;
    MethodParameters:
          Name  Flags
      eventBus  

  public io.netty.channel.ChannelHandlerContext channelHandlerContext();
    descriptor: ()Lio/netty/channel/ChannelHandlerContext;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 115
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.chctx:Lio/netty/channel/ChannelHandlerContext;
            areturn
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;

  public io.vertx.core.http.HttpConnection connection();
    descriptor: ()Lio/vertx/core/http/HttpConnection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 120
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            areturn
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;

  public java.lang.String binaryHandlerID();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 124
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.binaryHandlerID:Ljava/lang/String;
            areturn
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;

  public java.lang.String textHandlerID();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 128
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.textHandlerID:Ljava/lang/String;
            areturn
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;

  public boolean writeQueueFull();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 132
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 1
            monitorenter
         1: .line 133
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.checkClosed:()V
         2: .line 134
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            invokevirtual io.vertx.core.http.impl.Http1xConnectionBase.isNotWritable:()Z
            aload 1
            monitorexit
         3: ireturn
         4: .line 132
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         5: athrow
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any

  public io.vertx.core.Future<java.lang.Void> close();
    descriptor: ()Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 140
            aload 0 /* this */
            sipush 1000
            aconst_null
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.close:(SLjava/lang/String;)Lio/vertx/core/Future;
            areturn
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
    Signature: ()Lio/vertx/core/Future<Ljava/lang/Void;>;

  public void close(io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.Handler handler
         0: .line 145
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.close:()Lio/vertx/core/Future;
            astore 2 /* future */
        start local 2 // io.vertx.core.Future future
         1: .line 146
            aload 1 /* handler */
            ifnull 3
         2: .line 147
            aload 2 /* future */
            aload 1 /* handler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 149
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 2 // io.vertx.core.Future future
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    4     1  handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     2   future  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
         Name  Flags
      handler  

  public io.vertx.core.Future<java.lang.Void> close(short);
    descriptor: (S)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // short statusCode
         0: .line 153
            aload 0 /* this */
            iload 1 /* statusCode */
            aconst_null
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.close:(SLjava/lang/String;)Lio/vertx/core/Future;
            areturn
        end local 1 // short statusCode
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    1     1  statusCode  S
    Signature: (S)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
            Name  Flags
      statusCode  

  public void close(short, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (SLio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // short statusCode
        start local 2 // io.vertx.core.Handler handler
         0: .line 158
            aload 0 /* this */
            iload 1 /* statusCode */
            aconst_null
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.close:(SLjava/lang/String;)Lio/vertx/core/Future;
            astore 3 /* future */
        start local 3 // io.vertx.core.Future future
         1: .line 159
            aload 2 /* handler */
            ifnull 3
         2: .line 160
            aload 3 /* future */
            aload 2 /* handler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 162
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 3 // io.vertx.core.Future future
        end local 2 // io.vertx.core.Handler handler
        end local 1 // short statusCode
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    4     1  statusCode  S
            0    4     2     handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     3      future  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (SLio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
            Name  Flags
      statusCode  
      handler     

  public void close(short, java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (SLjava/lang/String;Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // short statusCode
        start local 2 // java.lang.String reason
        start local 3 // io.vertx.core.Handler handler
         0: .line 166
            aload 0 /* this */
            iload 1 /* statusCode */
            aload 2 /* reason */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.close:(SLjava/lang/String;)Lio/vertx/core/Future;
            astore 4 /* fut */
        start local 4 // io.vertx.core.Future fut
         1: .line 167
            aload 3 /* handler */
            ifnull 3
         2: .line 168
            aload 4 /* fut */
            aload 3 /* handler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 170
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 4 // io.vertx.core.Future fut
        end local 3 // io.vertx.core.Handler handler
        end local 2 // java.lang.String reason
        end local 1 // short statusCode
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    4     1  statusCode  S
            0    4     2      reason  Ljava/lang/String;
            0    4     3     handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     4         fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (SLjava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
            Name  Flags
      statusCode  
      reason      
      handler     

  public io.vertx.core.Future<java.lang.Void> close(short, java.lang.String);
    descriptor: (SLjava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=3
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // short statusCode
        start local 2 // java.lang.String reason
         0: .line 175
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 4
            monitorenter
         1: .line 176
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.closeStatusCode:Ljava/lang/Short;
            ifnonnull 2
            iconst_1
            goto 3
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase int java.lang.String top io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: dup
            istore 3 /* sendCloseFrame */
        start local 3 // boolean sendCloseFrame
         4: ifeq 7
         5: .line 177
            aload 0 /* this */
            iload 1 /* statusCode */
            invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
            putfield io.vertx.core.http.impl.WebSocketImplBase.closeStatusCode:Ljava/lang/Short;
         6: .line 178
            aload 0 /* this */
            aload 2 /* reason */
            putfield io.vertx.core.http.impl.WebSocketImplBase.closeReason:Ljava/lang/String;
         7: .line 175
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase int java.lang.String int io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack:
            aload 4
            monitorexit
         8: goto 11
        end local 3 // boolean sendCloseFrame
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase int java.lang.String top io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack: java.lang.Throwable
         9: aload 4
            monitorexit
        10: athrow
        start local 3 // boolean sendCloseFrame
        11: .line 181
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase int java.lang.String int
      StackMap stack:
            iload 3 /* sendCloseFrame */
            ifeq 17
        12: .line 183
            iload 1 /* statusCode */
            aload 2 /* reason */
            invokestatic io.vertx.core.http.impl.HttpUtils.generateWSCloseFrameByteBuf:(SLjava/lang/String;)Lio/netty/buffer/ByteBuf;
            astore 4 /* byteBuf */
        start local 4 // io.netty.buffer.ByteBuf byteBuf
        13: .line 184
            new io.netty.handler.codec.http.websocketx.CloseWebSocketFrame
            dup
            iconst_1
            iconst_0
            aload 4 /* byteBuf */
            invokespecial io.netty.handler.codec.http.websocketx.CloseWebSocketFrame.<init>:(ZILio/netty/buffer/ByteBuf;)V
            astore 5 /* frame */
        start local 5 // io.netty.handler.codec.http.websocketx.CloseWebSocketFrame frame
        14: .line 185
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.context:Lio/vertx/core/impl/ContextInternal;
            invokeinterface io.vertx.core.impl.ContextInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 6 /* promise */
        start local 6 // io.vertx.core.impl.future.PromiseInternal promise
        15: .line 186
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            aload 5 /* frame */
            aload 6 /* promise */
            invokevirtual io.vertx.core.http.impl.Http1xConnectionBase.writeToChannel:(Ljava/lang/Object;Lio/netty/util/concurrent/FutureListener;)V
        16: .line 187
            aload 6 /* promise */
            areturn
        end local 6 // io.vertx.core.impl.future.PromiseInternal promise
        end local 5 // io.netty.handler.codec.http.websocketx.CloseWebSocketFrame frame
        end local 4 // io.netty.buffer.ByteBuf byteBuf
        17: .line 189
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.context:Lio/vertx/core/impl/ContextInternal;
            invokeinterface io.vertx.core.impl.ContextInternal.succeededFuture:()Lio/vertx/core/Future;
            areturn
        end local 3 // boolean sendCloseFrame
        end local 2 // java.lang.String reason
        end local 1 // short statusCode
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0            this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0   18     1      statusCode  S
            0   18     2          reason  Ljava/lang/String;
            4    9     3  sendCloseFrame  Z
           11   18     3  sendCloseFrame  Z
           13   17     4         byteBuf  Lio/netty/buffer/ByteBuf;
           14   17     5           frame  Lio/netty/handler/codec/http/websocketx/CloseWebSocketFrame;
           15   17     6         promise  Lio/vertx/core/impl/future/PromiseInternal<Ljava/lang/Void;>;
      Exception table:
        from    to  target  type
           1     8       9  any
           9    10       9  any
    Signature: (SLjava/lang/String;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
            Name  Flags
      statusCode  
      reason      

  public boolean isSsl();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 195
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            invokevirtual io.vertx.core.http.impl.Http1xConnectionBase.isSsl:()Z
            ireturn
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;

  public javax.net.ssl.SSLSession sslSession();
    descriptor: ()Ljavax/net/ssl/SSLSession;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 200
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            invokevirtual io.vertx.core.http.impl.Http1xConnectionBase.sslSession:()Ljavax/net/ssl/SSLSession;
            areturn
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;

  public javax.security.cert.X509Certificate[] peerCertificateChain();
    descriptor: ()[Ljavax/security/cert/X509Certificate;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 205
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            invokevirtual io.vertx.core.http.impl.Http1xConnectionBase.peerCertificateChain:()[Ljavax/security/cert/X509Certificate;
            areturn
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
    Exceptions:
      throws javax.net.ssl.SSLPeerUnverifiedException

  public io.vertx.core.net.SocketAddress localAddress();
    descriptor: ()Lio/vertx/core/net/SocketAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 210
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            invokevirtual io.vertx.core.http.impl.Http1xConnectionBase.localAddress:()Lio/vertx/core/net/SocketAddress;
            areturn
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;

  public io.vertx.core.net.SocketAddress remoteAddress();
    descriptor: ()Lio/vertx/core/net/SocketAddress;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 215
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            invokevirtual io.vertx.core.http.impl.Http1xConnectionBase.remoteAddress:()Lio/vertx/core/net/SocketAddress;
            areturn
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;

  public io.vertx.core.Future<java.lang.Void> writeFinalTextFrame(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // java.lang.String text
         0: .line 220
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.context:Lio/vertx/core/impl/ContextInternal;
            invokeinterface io.vertx.core.impl.ContextInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 2 /* promise */
        start local 2 // io.vertx.core.Promise promise
         1: .line 221
            aload 0 /* this */
            aload 1 /* text */
            aload 2 /* promise */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writeFinalTextFrame:(Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
            pop
         2: .line 222
            aload 2 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.Promise promise
        end local 1 // java.lang.String text
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    3     1     text  Ljava/lang/String;
            1    3     2  promise  Lio/vertx/core/Promise<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
      Name  Flags
      text  

  public S writeFinalTextFrame(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // java.lang.String text
        start local 2 // io.vertx.core.Handler handler
         0: .line 227
            aload 0 /* this */
            aload 1 /* text */
            iconst_1
            invokestatic io.vertx.core.http.WebSocketFrame.textFrame:(Ljava/lang/String;Z)Lio/vertx/core/http/WebSocketFrame;
            aload 2 /* handler */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writeFrame:(Lio/vertx/core/http/WebSocketFrame;Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
            areturn
        end local 2 // io.vertx.core.Handler handler
        end local 1 // java.lang.String text
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    1     1     text  Ljava/lang/String;
            0    1     2  handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)TS;
    MethodParameters:
         Name  Flags
      text     
      handler  

  public io.vertx.core.Future<java.lang.Void> writeFinalBinaryFrame(io.vertx.core.buffer.Buffer);
    descriptor: (Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.buffer.Buffer data
         0: .line 232
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.context:Lio/vertx/core/impl/ContextInternal;
            invokeinterface io.vertx.core.impl.ContextInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 2 /* promise */
        start local 2 // io.vertx.core.Promise promise
         1: .line 233
            aload 0 /* this */
            aload 1 /* data */
            aload 2 /* promise */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writeFinalBinaryFrame:(Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
            pop
         2: .line 234
            aload 2 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 2 // io.vertx.core.Promise promise
        end local 1 // io.vertx.core.buffer.Buffer data
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    3     1     data  Lio/vertx/core/buffer/Buffer;
            1    3     2  promise  Lio/vertx/core/Promise<Ljava/lang/Void;>;
    Signature: (Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
      Name  Flags
      data  

  public S writeFinalBinaryFrame(io.vertx.core.buffer.Buffer, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.buffer.Buffer data
        start local 2 // io.vertx.core.Handler handler
         0: .line 239
            aload 0 /* this */
            aload 1 /* data */
            iconst_1
            invokestatic io.vertx.core.http.WebSocketFrame.binaryFrame:(Lio/vertx/core/buffer/Buffer;Z)Lio/vertx/core/http/WebSocketFrame;
            aload 2 /* handler */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writeFrame:(Lio/vertx/core/http/WebSocketFrame;Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
            areturn
        end local 2 // io.vertx.core.Handler handler
        end local 1 // io.vertx.core.buffer.Buffer data
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    1     1     data  Lio/vertx/core/buffer/Buffer;
            0    1     2  handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
    Signature: (Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)TS;
    MethodParameters:
         Name  Flags
      data     
      handler  

  public java.lang.String subProtocol();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 244
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 1
            monitorenter
         1: .line 245
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.subProtocol:Ljava/lang/String;
            aload 1
            monitorexit
         2: areturn
         3: .line 244
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  void subProtocol(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // java.lang.String subProtocol
         0: .line 250
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 2
            monitorenter
         1: .line 251
            aload 0 /* this */
            aload 1 /* subProtocol */
            putfield io.vertx.core.http.impl.WebSocketImplBase.subProtocol:Ljava/lang/String;
         2: .line 250
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase java.lang.String io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 253
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String subProtocol
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    7     1  subProtocol  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
             Name  Flags
      subProtocol  

  public java.lang.Short closeStatusCode();
    descriptor: ()Ljava/lang/Short;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 257
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 1
            monitorenter
         1: .line 258
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.closeStatusCode:Ljava/lang/Short;
            aload 1
            monitorexit
         2: areturn
         3: .line 257
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  public java.lang.String closeReason();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 264
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 1
            monitorenter
         1: .line 265
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.closeReason:Ljava/lang/String;
            aload 1
            monitorexit
         2: areturn
         3: .line 264
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  public io.vertx.core.MultiMap headers();
    descriptor: ()Lio/vertx/core/MultiMap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 271
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 1
            monitorenter
         1: .line 272
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.headers:Lio/vertx/core/MultiMap;
            aload 1
            monitorexit
         2: areturn
         3: .line 271
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  void headers(io.vertx.core.MultiMap);
    descriptor: (Lio/vertx/core/MultiMap;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.MultiMap responseHeaders
         0: .line 277
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 2
            monitorenter
         1: .line 278
            aload 0 /* this */
            aload 1 /* responseHeaders */
            putfield io.vertx.core.http.impl.WebSocketImplBase.headers:Lio/vertx/core/MultiMap;
         2: .line 277
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase io.vertx.core.MultiMap io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 280
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.MultiMap responseHeaders
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    7     0             this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    7     1  responseHeaders  Lio/vertx/core/MultiMap;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
                 Name  Flags
      responseHeaders  

  public io.vertx.core.Future<java.lang.Void> writeBinaryMessage(io.vertx.core.buffer.Buffer);
    descriptor: (Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.buffer.Buffer data
         0: .line 284
            aload 0 /* this */
            getstatic io.vertx.core.http.impl.FrameType.BINARY:Lio/vertx/core/http/impl/FrameType;
            aload 1 /* data */
            iconst_0
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writePartialMessage:(Lio/vertx/core/http/impl/FrameType;Lio/vertx/core/buffer/Buffer;I)Lio/vertx/core/Future;
            areturn
        end local 1 // io.vertx.core.buffer.Buffer data
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    1     1  data  Lio/vertx/core/buffer/Buffer;
    Signature: (Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
      Name  Flags
      data  

  public final S writeBinaryMessage(io.vertx.core.buffer.Buffer, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.buffer.Buffer data
        start local 2 // io.vertx.core.Handler handler
         0: .line 289
            aload 0 /* this */
            aload 1 /* data */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writeBinaryMessage:(Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/Future;
            astore 3 /* fut */
        start local 3 // io.vertx.core.Future fut
         1: .line 290
            aload 2 /* handler */
            ifnull 3
         2: .line 291
            aload 3 /* fut */
            aload 2 /* handler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 293
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 3 // io.vertx.core.Future fut
        end local 2 // io.vertx.core.Handler handler
        end local 1 // io.vertx.core.buffer.Buffer data
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    4     1     data  Lio/vertx/core/buffer/Buffer;
            0    4     2  handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     3      fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)TS;
    MethodParameters:
         Name  Flags
      data     
      handler  

  public io.vertx.core.Future<java.lang.Void> writeTextMessage(java.lang.String);
    descriptor: (Ljava/lang/String;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // java.lang.String text
         0: .line 298
            aload 0 /* this */
            getstatic io.vertx.core.http.impl.FrameType.TEXT:Lio/vertx/core/http/impl/FrameType;
            aload 1 /* text */
            invokestatic io.vertx.core.buffer.Buffer.buffer:(Ljava/lang/String;)Lio/vertx/core/buffer/Buffer;
            iconst_0
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writePartialMessage:(Lio/vertx/core/http/impl/FrameType;Lio/vertx/core/buffer/Buffer;I)Lio/vertx/core/Future;
            areturn
        end local 1 // java.lang.String text
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    1     1  text  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
      Name  Flags
      text  

  public final S writeTextMessage(java.lang.String, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Ljava/lang/String;Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // java.lang.String text
        start local 2 // io.vertx.core.Handler handler
         0: .line 303
            aload 0 /* this */
            aload 1 /* text */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writeTextMessage:(Ljava/lang/String;)Lio/vertx/core/Future;
            astore 3 /* fut */
        start local 3 // io.vertx.core.Future fut
         1: .line 304
            aload 2 /* handler */
            ifnull 3
         2: .line 305
            aload 3 /* fut */
            aload 2 /* handler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 307
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 3 // io.vertx.core.Future fut
        end local 2 // io.vertx.core.Handler handler
        end local 1 // java.lang.String text
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    4     1     text  Ljava/lang/String;
            0    4     2  handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     3      fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Ljava/lang/String;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)TS;
    MethodParameters:
         Name  Flags
      text     
      handler  

  public io.vertx.core.Future<java.lang.Void> write(io.vertx.core.buffer.Buffer);
    descriptor: (Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.buffer.Buffer data
         0: .line 312
            aload 0 /* this */
            aload 1 /* data */
            iconst_1
            invokestatic io.vertx.core.http.WebSocketFrame.binaryFrame:(Lio/vertx/core/buffer/Buffer;Z)Lio/vertx/core/http/WebSocketFrame;
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writeFrame:(Lio/vertx/core/http/WebSocketFrame;)Lio/vertx/core/Future;
            areturn
        end local 1 // io.vertx.core.buffer.Buffer data
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    1     1  data  Lio/vertx/core/buffer/Buffer;
    Signature: (Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
      Name  Flags
      data  

  public final void write(io.vertx.core.buffer.Buffer, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.buffer.Buffer data
        start local 2 // io.vertx.core.Handler handler
         0: .line 317
            aload 0 /* this */
            aload 1 /* data */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.write:(Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/Future;
            astore 3 /* fut */
        start local 3 // io.vertx.core.Future fut
         1: .line 318
            aload 2 /* handler */
            ifnull 3
         2: .line 319
            aload 3 /* fut */
            aload 2 /* handler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 321
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            return
        end local 3 // io.vertx.core.Future fut
        end local 2 // io.vertx.core.Handler handler
        end local 1 // io.vertx.core.buffer.Buffer data
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    4     1     data  Lio/vertx/core/buffer/Buffer;
            0    4     2  handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     3      fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
         Name  Flags
      data     
      handler  

  public io.vertx.core.Future<java.lang.Void> writePing(io.vertx.core.buffer.Buffer);
    descriptor: (Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.buffer.Buffer data
         0: .line 325
            aload 1 /* data */
            invokeinterface io.vertx.core.buffer.Buffer.length:()I
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.maxWebSocketFrameSize:I
            if_icmpgt 1
            aload 1 /* data */
            invokeinterface io.vertx.core.buffer.Buffer.length:()I
            bipush 125
            if_icmple 2
         1: .line 326
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.context:Lio/vertx/core/impl/ContextInternal;
            ldc "Ping cannot exceed maxWebSocketFrameSize or 125 bytes"
            invokeinterface io.vertx.core.impl.ContextInternal.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            areturn
         2: .line 328
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* data */
            invokestatic io.vertx.core.http.WebSocketFrame.pingFrame:(Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/http/WebSocketFrame;
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writeFrame:(Lio/vertx/core/http/WebSocketFrame;)Lio/vertx/core/Future;
            areturn
        end local 1 // io.vertx.core.buffer.Buffer data
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    3     1  data  Lio/vertx/core/buffer/Buffer;
    Signature: (Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
      Name  Flags
      data  

  public final io.vertx.core.http.WebSocketBase writePing(io.vertx.core.buffer.Buffer, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.buffer.Buffer data
        start local 2 // io.vertx.core.Handler handler
         0: .line 333
            aload 0 /* this */
            aload 1 /* data */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writePing:(Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/Future;
            astore 3 /* fut */
        start local 3 // io.vertx.core.Future fut
         1: .line 334
            aload 2 /* handler */
            ifnull 3
         2: .line 335
            aload 3 /* fut */
            aload 2 /* handler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 337
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 3 // io.vertx.core.Future fut
        end local 2 // io.vertx.core.Handler handler
        end local 1 // io.vertx.core.buffer.Buffer data
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    4     1     data  Lio/vertx/core/buffer/Buffer;
            0    4     2  handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     3      fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)Lio/vertx/core/http/WebSocketBase;
    MethodParameters:
         Name  Flags
      data     
      handler  

  public io.vertx.core.Future<java.lang.Void> writePong(io.vertx.core.buffer.Buffer);
    descriptor: (Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.buffer.Buffer data
         0: .line 342
            aload 1 /* data */
            invokeinterface io.vertx.core.buffer.Buffer.length:()I
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.maxWebSocketFrameSize:I
            if_icmpgt 1
            aload 1 /* data */
            invokeinterface io.vertx.core.buffer.Buffer.length:()I
            bipush 125
            if_icmple 2
         1: .line 343
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.context:Lio/vertx/core/impl/ContextInternal;
            ldc "Pong cannot exceed maxWebSocketFrameSize or 125 bytes"
            invokeinterface io.vertx.core.impl.ContextInternal.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            areturn
         2: .line 345
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* data */
            invokestatic io.vertx.core.http.WebSocketFrame.pongFrame:(Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/http/WebSocketFrame;
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writeFrame:(Lio/vertx/core/http/WebSocketFrame;)Lio/vertx/core/Future;
            areturn
        end local 1 // io.vertx.core.buffer.Buffer data
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    3     1  data  Lio/vertx/core/buffer/Buffer;
    Signature: (Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
      Name  Flags
      data  

  public final io.vertx.core.http.WebSocketBase writePong(io.vertx.core.buffer.Buffer, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.buffer.Buffer data
        start local 2 // io.vertx.core.Handler handler
         0: .line 350
            aload 0 /* this */
            aload 1 /* data */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writePong:(Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/Future;
            astore 3 /* fut */
        start local 3 // io.vertx.core.Future fut
         1: .line 351
            aload 2 /* handler */
            ifnull 3
         2: .line 352
            aload 3 /* fut */
            aload 2 /* handler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 354
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 3 // io.vertx.core.Future fut
        end local 2 // io.vertx.core.Handler handler
        end local 1 // io.vertx.core.buffer.Buffer data
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    4     1     data  Lio/vertx/core/buffer/Buffer;
            0    4     2  handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     3      fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)Lio/vertx/core/http/WebSocketBase;
    MethodParameters:
         Name  Flags
      data     
      handler  

  private io.vertx.core.Future<java.lang.Void> writePartialMessage(io.vertx.core.http.impl.FrameType, io.vertx.core.buffer.Buffer, int);
    descriptor: (Lio/vertx/core/http/impl/FrameType;Lio/vertx/core/buffer/Buffer;I)Lio/vertx/core/Future;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.http.impl.FrameType frameType
        start local 2 // io.vertx.core.buffer.Buffer data
        start local 3 // int offset
         0: .line 362
            iload 3 /* offset */
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.maxWebSocketFrameSize:I
            iadd
            istore 4 /* end */
        start local 4 // int end
         1: .line 364
            iload 4 /* end */
            aload 2 /* data */
            invokeinterface io.vertx.core.buffer.Buffer.length:()I
            if_icmplt 5
         2: .line 365
            aload 2 /* data */
            invokeinterface io.vertx.core.buffer.Buffer.length:()I
            istore 4 /* end */
         3: .line 366
            iconst_1
            istore 5 /* isFinal */
        start local 5 // boolean isFinal
         4: .line 367
            goto 6
        end local 5 // boolean isFinal
         5: .line 368
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 5 /* isFinal */
        start local 5 // boolean isFinal
         6: .line 370
      StackMap locals: int
      StackMap stack:
            aload 2 /* data */
            iload 3 /* offset */
            iload 4 /* end */
            invokeinterface io.vertx.core.buffer.Buffer.slice:(II)Lio/vertx/core/buffer/Buffer;
            astore 6 /* slice */
        start local 6 // io.vertx.core.buffer.Buffer slice
         7: .line 372
            iload 3 /* offset */
            ifeq 8
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.supportsContinuation:Z
            ifne 10
         8: .line 373
      StackMap locals: io.vertx.core.buffer.Buffer
      StackMap stack:
            new io.vertx.core.http.impl.ws.WebSocketFrameImpl
            dup
            aload 1 /* frameType */
            aload 6 /* slice */
            invokeinterface io.vertx.core.buffer.Buffer.getByteBuf:()Lio/netty/buffer/ByteBuf;
            iload 5 /* isFinal */
            invokespecial io.vertx.core.http.impl.ws.WebSocketFrameImpl.<init>:(Lio/vertx/core/http/impl/FrameType;Lio/netty/buffer/ByteBuf;Z)V
            astore 7 /* frame */
        start local 7 // io.vertx.core.http.WebSocketFrame frame
         9: .line 374
            goto 11
        end local 7 // io.vertx.core.http.WebSocketFrame frame
        10: .line 375
      StackMap locals:
      StackMap stack:
            aload 6 /* slice */
            iload 5 /* isFinal */
            invokestatic io.vertx.core.http.WebSocketFrame.continuationFrame:(Lio/vertx/core/buffer/Buffer;Z)Lio/vertx/core/http/WebSocketFrame;
            astore 7 /* frame */
        start local 7 // io.vertx.core.http.WebSocketFrame frame
        11: .line 377
      StackMap locals: io.vertx.core.http.WebSocketFrame
      StackMap stack:
            iload 3 /* offset */
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.maxWebSocketFrameSize:I
            iadd
            istore 8 /* newOffset */
        start local 8 // int newOffset
        12: .line 378
            iload 5 /* isFinal */
            ifeq 14
        13: .line 379
            aload 0 /* this */
            aload 7 /* frame */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writeFrame:(Lio/vertx/core/http/WebSocketFrame;)Lio/vertx/core/Future;
            areturn
        14: .line 381
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 7 /* frame */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writeFrame:(Lio/vertx/core/http/WebSocketFrame;)Lio/vertx/core/Future;
            pop
        15: .line 382
            aload 0 /* this */
            aload 1 /* frameType */
            aload 2 /* data */
            iload 8 /* newOffset */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writePartialMessage:(Lio/vertx/core/http/impl/FrameType;Lio/vertx/core/buffer/Buffer;I)Lio/vertx/core/Future;
            areturn
        end local 8 // int newOffset
        end local 7 // io.vertx.core.http.WebSocketFrame frame
        end local 6 // io.vertx.core.buffer.Buffer slice
        end local 5 // boolean isFinal
        end local 4 // int end
        end local 3 // int offset
        end local 2 // io.vertx.core.buffer.Buffer data
        end local 1 // io.vertx.core.http.impl.FrameType frameType
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   16     0       this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0   16     1  frameType  Lio/vertx/core/http/impl/FrameType;
            0   16     2       data  Lio/vertx/core/buffer/Buffer;
            0   16     3     offset  I
            1   16     4        end  I
            4    5     5    isFinal  Z
            6   16     5    isFinal  Z
            7   16     6      slice  Lio/vertx/core/buffer/Buffer;
            9   10     7      frame  Lio/vertx/core/http/WebSocketFrame;
           11   16     7      frame  Lio/vertx/core/http/WebSocketFrame;
           12   16     8  newOffset  I
    Signature: (Lio/vertx/core/http/impl/FrameType;Lio/vertx/core/buffer/Buffer;I)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
           Name  Flags
      frameType  
      data       
      offset     

  public io.vertx.core.Future<java.lang.Void> writeFrame(io.vertx.core.http.WebSocketFrame);
    descriptor: (Lio/vertx/core/http/WebSocketFrame;)Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.http.WebSocketFrame frame
         0: .line 388
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 2
            monitorenter
         1: .line 389
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.isClosed:()Z
            ifeq 4
         2: .line 390
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.context:Lio/vertx/core/impl/ContextInternal;
            ldc "WebSocket is closed"
            invokeinterface io.vertx.core.impl.ContextInternal.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            aload 2
            monitorexit
         3: areturn
         4: .line 392
      StackMap locals: io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.context:Lio/vertx/core/impl/ContextInternal;
            invokeinterface io.vertx.core.impl.ContextInternal.promise:()Lio/vertx/core/impl/future/PromiseInternal;
            astore 3 /* promise */
        start local 3 // io.vertx.core.impl.future.PromiseInternal promise
         5: .line 393
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            aload 0 /* this */
            aload 1 /* frame */
            checkcast io.vertx.core.http.impl.ws.WebSocketFrameImpl
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.encodeFrame:(Lio/vertx/core/http/impl/ws/WebSocketFrameImpl;)Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
            aload 3 /* promise */
            invokevirtual io.vertx.core.http.impl.Http1xConnectionBase.writeToChannel:(Ljava/lang/Object;Lio/netty/util/concurrent/FutureListener;)V
         6: .line 394
            aload 3 /* promise */
            invokeinterface io.vertx.core.impl.future.PromiseInternal.future:()Lio/vertx/core/Future;
            aload 2
            monitorexit
         7: areturn
        end local 3 // io.vertx.core.impl.future.PromiseInternal promise
         8: .line 388
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         9: athrow
        end local 1 // io.vertx.core.http.WebSocketFrame frame
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0   10     1    frame  Lio/vertx/core/http/WebSocketFrame;
            5    8     3  promise  Lio/vertx/core/impl/future/PromiseInternal<Ljava/lang/Void;>;
      Exception table:
        from    to  target  type
           1     3       8  any
           4     7       8  any
           8     9       8  any
    Signature: (Lio/vertx/core/http/WebSocketFrame;)Lio/vertx/core/Future<Ljava/lang/Void;>;
    MethodParameters:
       Name  Flags
      frame  

  public final S writeFrame(io.vertx.core.http.WebSocketFrame, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/core/http/WebSocketFrame;Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.http.WebSocketFrame frame
        start local 2 // io.vertx.core.Handler handler
         0: .line 399
            aload 0 /* this */
            aload 1 /* frame */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writeFrame:(Lio/vertx/core/http/WebSocketFrame;)Lio/vertx/core/Future;
            astore 3 /* fut */
        start local 3 // io.vertx.core.Future fut
         1: .line 400
            aload 2 /* handler */
            ifnull 3
         2: .line 401
            aload 3 /* fut */
            aload 2 /* handler */
            invokeinterface io.vertx.core.Future.onComplete:(Lio/vertx/core/Handler;)Lio/vertx/core/Future;
            pop
         3: .line 403
      StackMap locals: io.vertx.core.Future
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 3 // io.vertx.core.Future fut
        end local 2 // io.vertx.core.Handler handler
        end local 1 // io.vertx.core.http.WebSocketFrame frame
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    4     1    frame  Lio/vertx/core/http/WebSocketFrame;
            0    4     2  handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            1    4     3      fut  Lio/vertx/core/Future<Ljava/lang/Void;>;
    Signature: (Lio/vertx/core/http/WebSocketFrame;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)TS;
    MethodParameters:
         Name  Flags
      frame    
      handler  

  private void writeBinaryFrameInternal(io.vertx.core.buffer.Buffer);
    descriptor: (Lio/vertx/core/buffer/Buffer;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.buffer.Buffer data
         0: .line 407
            aload 0 /* this */
            new io.vertx.core.http.impl.ws.WebSocketFrameImpl
            dup
            getstatic io.vertx.core.http.impl.FrameType.BINARY:Lio/vertx/core/http/impl/FrameType;
            aload 1 /* data */
            invokeinterface io.vertx.core.buffer.Buffer.getByteBuf:()Lio/netty/buffer/ByteBuf;
            invokespecial io.vertx.core.http.impl.ws.WebSocketFrameImpl.<init>:(Lio/vertx/core/http/impl/FrameType;Lio/netty/buffer/ByteBuf;)V
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writeFrame:(Lio/vertx/core/http/WebSocketFrame;)Lio/vertx/core/Future;
            pop
         1: .line 408
            return
        end local 1 // io.vertx.core.buffer.Buffer data
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    2     1  data  Lio/vertx/core/buffer/Buffer;
    MethodParameters:
      Name  Flags
      data  

  private void writeTextFrameInternal(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // java.lang.String str
         0: .line 411
            aload 0 /* this */
            new io.vertx.core.http.impl.ws.WebSocketFrameImpl
            dup
            aload 1 /* str */
            invokespecial io.vertx.core.http.impl.ws.WebSocketFrameImpl.<init>:(Ljava/lang/String;)V
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writeFrame:(Lio/vertx/core/http/WebSocketFrame;)Lio/vertx/core/Future;
            pop
         1: .line 412
            return
        end local 1 // java.lang.String str
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    2     1   str  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      str   

  private io.netty.handler.codec.http.websocketx.WebSocketFrame encodeFrame(io.vertx.core.http.impl.ws.WebSocketFrameImpl);
    descriptor: (Lio/vertx/core/http/impl/ws/WebSocketFrameImpl;)Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.http.impl.ws.WebSocketFrameImpl frame
         0: .line 415
            aload 1 /* frame */
            invokevirtual io.vertx.core.http.impl.ws.WebSocketFrameImpl.getBinaryData:()Lio/netty/buffer/ByteBuf;
            astore 2 /* buf */
        start local 2 // io.netty.buffer.ByteBuf buf
         1: .line 416
            aload 2 /* buf */
            getstatic io.netty.buffer.Unpooled.EMPTY_BUFFER:Lio/netty/buffer/ByteBuf;
            if_acmpeq 3
         2: .line 417
            aload 2 /* buf */
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.chctx:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.alloc:()Lio/netty/buffer/ByteBufAllocator;
            invokestatic io.vertx.core.net.impl.VertxHandler.safeBuffer:(Lio/netty/buffer/ByteBuf;Lio/netty/buffer/ByteBufAllocator;)Lio/netty/buffer/ByteBuf;
            astore 2 /* buf */
         3: .line 419
      StackMap locals: io.netty.buffer.ByteBuf
      StackMap stack:
            invokestatic io.vertx.core.http.impl.WebSocketImplBase.$SWITCH_TABLE$io$vertx$core$http$impl$FrameType:()[I
            aload 1 /* frame */
            invokevirtual io.vertx.core.http.impl.ws.WebSocketFrameImpl.type:()Lio/vertx/core/http/impl/FrameType;
            invokevirtual io.vertx.core.http.impl.FrameType.ordinal:()I
            iaload
            tableswitch { // 1 - 6
                    1: 7
                    2: 5
                    3: 4
                    4: 6
                    5: 9
                    6: 8
              default: 10
          }
         4: .line 421
      StackMap locals:
      StackMap stack:
            new io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame
            dup
            aload 1 /* frame */
            invokevirtual io.vertx.core.http.impl.ws.WebSocketFrameImpl.isFinal:()Z
            iconst_0
            aload 2 /* buf */
            invokespecial io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame.<init>:(ZILio/netty/buffer/ByteBuf;)V
            areturn
         5: .line 423
      StackMap locals:
      StackMap stack:
            new io.netty.handler.codec.http.websocketx.TextWebSocketFrame
            dup
            aload 1 /* frame */
            invokevirtual io.vertx.core.http.impl.ws.WebSocketFrameImpl.isFinal:()Z
            iconst_0
            aload 2 /* buf */
            invokespecial io.netty.handler.codec.http.websocketx.TextWebSocketFrame.<init>:(ZILio/netty/buffer/ByteBuf;)V
            areturn
         6: .line 425
      StackMap locals:
      StackMap stack:
            new io.netty.handler.codec.http.websocketx.CloseWebSocketFrame
            dup
            iconst_1
            iconst_0
            aload 2 /* buf */
            invokespecial io.netty.handler.codec.http.websocketx.CloseWebSocketFrame.<init>:(ZILio/netty/buffer/ByteBuf;)V
            areturn
         7: .line 427
      StackMap locals:
      StackMap stack:
            new io.netty.handler.codec.http.websocketx.ContinuationWebSocketFrame
            dup
            aload 1 /* frame */
            invokevirtual io.vertx.core.http.impl.ws.WebSocketFrameImpl.isFinal:()Z
            iconst_0
            aload 2 /* buf */
            invokespecial io.netty.handler.codec.http.websocketx.ContinuationWebSocketFrame.<init>:(ZILio/netty/buffer/ByteBuf;)V
            areturn
         8: .line 429
      StackMap locals:
      StackMap stack:
            new io.netty.handler.codec.http.websocketx.PongWebSocketFrame
            dup
            aload 2 /* buf */
            invokespecial io.netty.handler.codec.http.websocketx.PongWebSocketFrame.<init>:(Lio/netty/buffer/ByteBuf;)V
            areturn
         9: .line 431
      StackMap locals:
      StackMap stack:
            new io.netty.handler.codec.http.websocketx.PingWebSocketFrame
            dup
            aload 2 /* buf */
            invokespecial io.netty.handler.codec.http.websocketx.PingWebSocketFrame.<init>:(Lio/netty/buffer/ByteBuf;)V
            areturn
        10: .line 433
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported WebSocket msg "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* frame */
            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 2 // io.netty.buffer.ByteBuf buf
        end local 1 // io.vertx.core.http.impl.ws.WebSocketFrameImpl frame
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0   11     1  frame  Lio/vertx/core/http/impl/ws/WebSocketFrameImpl;
            1   11     2    buf  Lio/netty/buffer/ByteBuf;
    MethodParameters:
       Name  Flags
      frame  

  void checkClosed();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 438
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.isClosed:()Z
            ifeq 2
         1: .line 439
            new java.lang.IllegalStateException
            dup
            ldc "WebSocket is closed"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 441
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;

  public boolean isClosed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 444
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 1
            monitorenter
         1: .line 445
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.closed:Z
            ifne 2
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.closeStatusCode:Ljava/lang/Short;
            ifnonnull 2
            iconst_0
            goto 3
      StackMap locals: io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: aload 1
            monitorexit
         4: ireturn
         5: .line 444
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         6: athrow
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any

  private io.vertx.core.http.impl.ws.WebSocketFrameInternal decodeFrame(io.netty.handler.codec.http.websocketx.WebSocketFrame);
    descriptor: (Lio/netty/handler/codec/http/websocketx/WebSocketFrame;)Lio/vertx/core/http/impl/ws/WebSocketFrameInternal;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.netty.handler.codec.http.websocketx.WebSocketFrame msg
         0: .line 450
            aload 1 /* msg */
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.chctx:Lio/netty/channel/ChannelHandlerContext;
            invokeinterface io.netty.channel.ChannelHandlerContext.alloc:()Lio/netty/buffer/ByteBufAllocator;
            invokestatic io.vertx.core.net.impl.VertxHandler.safeBuffer:(Lio/netty/buffer/ByteBufHolder;Lio/netty/buffer/ByteBufAllocator;)Lio/netty/buffer/ByteBuf;
            astore 2 /* payload */
        start local 2 // io.netty.buffer.ByteBuf payload
         1: .line 451
            aload 1 /* msg */
            invokevirtual io.netty.handler.codec.http.websocketx.WebSocketFrame.isFinalFragment:()Z
            istore 3 /* isFinal */
        start local 3 // boolean isFinal
         2: .line 453
            aload 1 /* msg */
            instanceof io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame
            ifeq 5
         3: .line 454
            getstatic io.vertx.core.http.impl.FrameType.BINARY:Lio/vertx/core/http/impl/FrameType;
            astore 4 /* frameType */
        start local 4 // io.vertx.core.http.impl.FrameType frameType
         4: .line 455
            goto 21
        end local 4 // io.vertx.core.http.impl.FrameType frameType
      StackMap locals: io.netty.buffer.ByteBuf int
      StackMap stack:
         5: aload 1 /* msg */
            instanceof io.netty.handler.codec.http.websocketx.CloseWebSocketFrame
            ifeq 8
         6: .line 456
            getstatic io.vertx.core.http.impl.FrameType.CLOSE:Lio/vertx/core/http/impl/FrameType;
            astore 4 /* frameType */
        start local 4 // io.vertx.core.http.impl.FrameType frameType
         7: .line 457
            goto 21
        end local 4 // io.vertx.core.http.impl.FrameType frameType
      StackMap locals:
      StackMap stack:
         8: aload 1 /* msg */
            instanceof io.netty.handler.codec.http.websocketx.PingWebSocketFrame
            ifeq 11
         9: .line 458
            getstatic io.vertx.core.http.impl.FrameType.PING:Lio/vertx/core/http/impl/FrameType;
            astore 4 /* frameType */
        start local 4 // io.vertx.core.http.impl.FrameType frameType
        10: .line 459
            goto 21
        end local 4 // io.vertx.core.http.impl.FrameType frameType
      StackMap locals:
      StackMap stack:
        11: aload 1 /* msg */
            instanceof io.netty.handler.codec.http.websocketx.PongWebSocketFrame
            ifeq 14
        12: .line 460
            getstatic io.vertx.core.http.impl.FrameType.PONG:Lio/vertx/core/http/impl/FrameType;
            astore 4 /* frameType */
        start local 4 // io.vertx.core.http.impl.FrameType frameType
        13: .line 461
            goto 21
        end local 4 // io.vertx.core.http.impl.FrameType frameType
      StackMap locals:
      StackMap stack:
        14: aload 1 /* msg */
            instanceof io.netty.handler.codec.http.websocketx.TextWebSocketFrame
            ifeq 17
        15: .line 462
            getstatic io.vertx.core.http.impl.FrameType.TEXT:Lio/vertx/core/http/impl/FrameType;
            astore 4 /* frameType */
        start local 4 // io.vertx.core.http.impl.FrameType frameType
        16: .line 463
            goto 21
        end local 4 // io.vertx.core.http.impl.FrameType frameType
      StackMap locals:
      StackMap stack:
        17: aload 1 /* msg */
            instanceof io.netty.handler.codec.http.websocketx.ContinuationWebSocketFrame
            ifeq 20
        18: .line 464
            getstatic io.vertx.core.http.impl.FrameType.CONTINUATION:Lio/vertx/core/http/impl/FrameType;
            astore 4 /* frameType */
        start local 4 // io.vertx.core.http.impl.FrameType frameType
        19: .line 465
            goto 21
        end local 4 // io.vertx.core.http.impl.FrameType frameType
        20: .line 466
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported WebSocket msg "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* msg */
            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
        start local 4 // io.vertx.core.http.impl.FrameType frameType
        21: .line 468
      StackMap locals: io.vertx.core.http.impl.FrameType
      StackMap stack:
            new io.vertx.core.http.impl.ws.WebSocketFrameImpl
            dup
            aload 4 /* frameType */
            aload 2 /* payload */
            iload 3 /* isFinal */
            invokespecial io.vertx.core.http.impl.ws.WebSocketFrameImpl.<init>:(Lio/vertx/core/http/impl/FrameType;Lio/netty/buffer/ByteBuf;Z)V
            areturn
        end local 4 // io.vertx.core.http.impl.FrameType frameType
        end local 3 // boolean isFinal
        end local 2 // io.netty.buffer.ByteBuf payload
        end local 1 // io.netty.handler.codec.http.websocketx.WebSocketFrame msg
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   22     0       this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0   22     1        msg  Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
            1   22     2    payload  Lio/netty/buffer/ByteBuf;
            2   22     3    isFinal  Z
            4    5     4  frameType  Lio/vertx/core/http/impl/FrameType;
            7    8     4  frameType  Lio/vertx/core/http/impl/FrameType;
           10   11     4  frameType  Lio/vertx/core/http/impl/FrameType;
           13   14     4  frameType  Lio/vertx/core/http/impl/FrameType;
           16   17     4  frameType  Lio/vertx/core/http/impl/FrameType;
           19   20     4  frameType  Lio/vertx/core/http/impl/FrameType;
           21   22     4  frameType  Lio/vertx/core/http/impl/FrameType;
    MethodParameters:
      Name  Flags
      msg   

  void handleFrame(io.netty.handler.codec.http.websocketx.WebSocketFrame);
    descriptor: (Lio/netty/handler/codec/http/websocketx/WebSocketFrame;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.netty.handler.codec.http.websocketx.WebSocketFrame msg
         0: .line 472
            aload 0 /* this */
            aload 1 /* msg */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.decodeFrame:(Lio/netty/handler/codec/http/websocketx/WebSocketFrame;)Lio/vertx/core/http/impl/ws/WebSocketFrameInternal;
            astore 2 /* frame */
        start local 2 // io.vertx.core.http.impl.ws.WebSocketFrameInternal frame
         1: .line 473
            invokestatic io.vertx.core.http.impl.WebSocketImplBase.$SWITCH_TABLE$io$vertx$core$http$impl$FrameType:()[I
            aload 2 /* frame */
            invokeinterface io.vertx.core.http.impl.ws.WebSocketFrameInternal.type:()Lio/vertx/core/http/impl/FrameType;
            invokevirtual io.vertx.core.http.impl.FrameType.ordinal:()I
            iaload
            tableswitch { // 4 - 6
                    4: 8
                    5: 2
                    6: 4
              default: 9
          }
         2: .line 476
      StackMap locals: io.vertx.core.http.impl.ws.WebSocketFrameInternal
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            new io.netty.handler.codec.http.websocketx.PongWebSocketFrame
            dup
            aload 2 /* frame */
            invokeinterface io.vertx.core.http.impl.ws.WebSocketFrameInternal.getBinaryData:()Lio/netty/buffer/ByteBuf;
            invokevirtual io.netty.buffer.ByteBuf.copy:()Lio/netty/buffer/ByteBuf;
            invokespecial io.netty.handler.codec.http.websocketx.PongWebSocketFrame.<init>:(Lio/netty/buffer/ByteBuf;)V
            invokevirtual io.vertx.core.http.impl.Http1xConnectionBase.writeToChannel:(Ljava/lang/Object;)V
         3: .line 477
            goto 9
         4: .line 479
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.pongHandler:()Lio/vertx/core/Handler;
            astore 3 /* pongHandler */
        start local 3 // io.vertx.core.Handler pongHandler
         5: .line 480
            aload 3 /* pongHandler */
            ifnull 9
         6: .line 481
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.context:Lio/vertx/core/impl/ContextInternal;
            aload 2 /* frame */
            invokeinterface io.vertx.core.http.impl.ws.WebSocketFrameInternal.binaryData:()Lio/vertx/core/buffer/Buffer;
            aload 3 /* pongHandler */
            invokeinterface io.vertx.core.impl.ContextInternal.dispatch:(Ljava/lang/Object;Lio/vertx/core/Handler;)V
         7: .line 483
            goto 9
        end local 3 // io.vertx.core.Handler pongHandler
         8: .line 485
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* msg */
            checkcast io.netty.handler.codec.http.websocketx.CloseWebSocketFrame
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.handleCloseFrame:(Lio/netty/handler/codec/http/websocketx/CloseWebSocketFrame;)V
         9: .line 488
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.pending:Lio/vertx/core/streams/impl/InboundBuffer;
            aload 2 /* frame */
            invokevirtual io.vertx.core.streams.impl.InboundBuffer.write:(Ljava/lang/Object;)Z
            ifne 11
        10: .line 489
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            invokevirtual io.vertx.core.http.impl.Http1xConnectionBase.doPause:()V
        11: .line 491
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.vertx.core.http.impl.ws.WebSocketFrameInternal frame
        end local 1 // io.netty.handler.codec.http.websocketx.WebSocketFrame msg
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0   12     1          msg  Lio/netty/handler/codec/http/websocketx/WebSocketFrame;
            1   12     2        frame  Lio/vertx/core/http/impl/ws/WebSocketFrameInternal;
            5    8     3  pongHandler  Lio/vertx/core/Handler<Lio/vertx/core/buffer/Buffer;>;
    MethodParameters:
      Name  Flags
      msg   

  private void handleCloseFrame(io.netty.handler.codec.http.websocketx.CloseWebSocketFrame);
    descriptor: (Lio/netty/handler/codec/http/websocketx/CloseWebSocketFrame;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.netty.handler.codec.http.websocketx.CloseWebSocketFrame closeFrame
         0: .line 495
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 3
            monitorenter
         1: .line 496
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.closeStatusCode:Ljava/lang/Short;
            ifnonnull 2
            iconst_1
            goto 3
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase io.netty.handler.codec.http.websocketx.CloseWebSocketFrame top io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 2 /* echo */
        start local 2 // boolean echo
         4: .line 497
            aload 0 /* this */
            iconst_1
            putfield io.vertx.core.http.impl.WebSocketImplBase.closed:Z
         5: .line 498
            aload 0 /* this */
            aload 1 /* closeFrame */
            invokevirtual io.netty.handler.codec.http.websocketx.CloseWebSocketFrame.statusCode:()I
            i2s
            invokestatic java.lang.Short.valueOf:(S)Ljava/lang/Short;
            putfield io.vertx.core.http.impl.WebSocketImplBase.closeStatusCode:Ljava/lang/Short;
         6: .line 499
            aload 0 /* this */
            aload 1 /* closeFrame */
            invokevirtual io.netty.handler.codec.http.websocketx.CloseWebSocketFrame.reasonText:()Ljava/lang/String;
            putfield io.vertx.core.http.impl.WebSocketImplBase.closeReason:Ljava/lang/String;
         7: .line 495
            aload 3
            monitorexit
         8: goto 11
        end local 2 // boolean echo
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 3
            monitorexit
        10: athrow
        start local 2 // boolean echo
        11: .line 501
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase io.netty.handler.codec.http.websocketx.CloseWebSocketFrame int
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.handleClose:(Z)V
        12: .line 502
            iload 2 /* echo */
            ifeq 17
        13: .line 503
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            invokevirtual io.vertx.core.http.impl.Http1xConnectionBase.channelFuture:()Lio/netty/channel/ChannelPromise;
            astore 3 /* fut */
        start local 3 // io.netty.channel.ChannelPromise fut
        14: .line 504
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            aload 1 /* closeFrame */
            invokevirtual io.netty.handler.codec.http.websocketx.CloseWebSocketFrame.retainedDuplicate:()Lio/netty/handler/codec/http/websocketx/CloseWebSocketFrame;
            aload 3 /* fut */
            invokevirtual io.vertx.core.http.impl.Http1xConnectionBase.writeToChannel:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)V
        15: .line 505
            aload 3 /* fut */
            aload 0 /* this */
            invokedynamic operationComplete(Lio/vertx/core/http/impl/WebSocketImplBase;)Lio/netty/util/concurrent/GenericFutureListener;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lio/netty/util/concurrent/Future;)V
                  io/vertx/core/http/impl/WebSocketImplBase.lambda$4(Lio/netty/util/concurrent/Future;)V (7)
                  (Lio/netty/util/concurrent/Future;)V
            invokeinterface io.netty.channel.ChannelPromise.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelPromise;
            pop
        end local 3 // io.netty.channel.ChannelPromise fut
        16: .line 506
            goto 18
        17: .line 507
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.closeConnection:()V
        18: .line 509
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean echo
        end local 1 // io.netty.handler.codec.http.websocketx.CloseWebSocketFrame closeFrame
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0   19     1  closeFrame  Lio/netty/handler/codec/http/websocketx/CloseWebSocketFrame;
            4    9     2        echo  Z
           11   19     2        echo  Z
           14   16     3         fut  Lio/netty/channel/ChannelPromise;
      Exception table:
        from    to  target  type
           1     8       9  any
           9    10       9  any
    MethodParameters:
            Name  Flags
      closeFrame  

  protected void handleClose(boolean);
    descriptor: (Z)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // boolean graceful
         0: .line 516
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 6
            monitorenter
         1: .line 517
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.closeHandler:Lio/vertx/core/Handler;
            astore 4 /* closeHandler */
        start local 4 // io.vertx.core.Handler closeHandler
         2: .line 518
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.exceptionHandler:Lio/vertx/core/Handler;
            astore 5 /* exceptionHandler */
        start local 5 // io.vertx.core.Handler exceptionHandler
         3: .line 519
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.binaryHandlerRegistration:Lio/vertx/core/eventbus/MessageConsumer;
            astore 2 /* binaryConsumer */
        start local 2 // io.vertx.core.eventbus.MessageConsumer binaryConsumer
         4: .line 520
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.textHandlerRegistration:Lio/vertx/core/eventbus/MessageConsumer;
            astore 3 /* textConsumer */
        start local 3 // io.vertx.core.eventbus.MessageConsumer textConsumer
         5: .line 521
            aload 0 /* this */
            aconst_null
            putfield io.vertx.core.http.impl.WebSocketImplBase.binaryHandlerRegistration:Lio/vertx/core/eventbus/MessageConsumer;
         6: .line 522
            aload 0 /* this */
            aconst_null
            putfield io.vertx.core.http.impl.WebSocketImplBase.textHandlerRegistration:Lio/vertx/core/eventbus/MessageConsumer;
         7: .line 523
            aload 0 /* this */
            aconst_null
            putfield io.vertx.core.http.impl.WebSocketImplBase.closeHandler:Lio/vertx/core/Handler;
         8: .line 524
            aload 0 /* this */
            aconst_null
            putfield io.vertx.core.http.impl.WebSocketImplBase.exceptionHandler:Lio/vertx/core/Handler;
         9: .line 516
            aload 6
            monitorexit
        10: goto 13
        end local 5 // io.vertx.core.Handler exceptionHandler
        end local 4 // io.vertx.core.Handler closeHandler
        end local 3 // io.vertx.core.eventbus.MessageConsumer textConsumer
        end local 2 // io.vertx.core.eventbus.MessageConsumer binaryConsumer
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase int top top top top io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack: java.lang.Throwable
        11: aload 6
            monitorexit
        12: athrow
        start local 2 // io.vertx.core.eventbus.MessageConsumer binaryConsumer
        start local 3 // io.vertx.core.eventbus.MessageConsumer textConsumer
        start local 4 // io.vertx.core.Handler closeHandler
        start local 5 // io.vertx.core.Handler exceptionHandler
        13: .line 526
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase int io.vertx.core.eventbus.MessageConsumer io.vertx.core.eventbus.MessageConsumer io.vertx.core.Handler io.vertx.core.Handler
      StackMap stack:
            aload 2 /* binaryConsumer */
            ifnull 15
        14: .line 527
            aload 2 /* binaryConsumer */
            invokeinterface io.vertx.core.eventbus.MessageConsumer.unregister:()Lio/vertx/core/Future;
            pop
        15: .line 529
      StackMap locals:
      StackMap stack:
            aload 3 /* textConsumer */
            ifnull 17
        16: .line 530
            aload 3 /* textConsumer */
            invokeinterface io.vertx.core.eventbus.MessageConsumer.unregister:()Lio/vertx/core/Future;
            pop
        17: .line 532
      StackMap locals:
      StackMap stack:
            aload 5 /* exceptionHandler */
            ifnull 19
            iload 1 /* graceful */
            ifne 19
        18: .line 533
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.context:Lio/vertx/core/impl/ContextInternal;
            getstatic io.vertx.core.net.impl.ConnectionBase.CLOSED_EXCEPTION:Lio/vertx/core/VertxException;
            aload 5 /* exceptionHandler */
            invokeinterface io.vertx.core.impl.ContextInternal.dispatch:(Ljava/lang/Object;Lio/vertx/core/Handler;)V
        19: .line 535
      StackMap locals:
      StackMap stack:
            aload 4 /* closeHandler */
            ifnull 21
        20: .line 536
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.context:Lio/vertx/core/impl/ContextInternal;
            aconst_null
            aload 4 /* closeHandler */
            invokeinterface io.vertx.core.impl.ContextInternal.dispatch:(Ljava/lang/Object;Lio/vertx/core/Handler;)V
        21: .line 538
      StackMap locals:
      StackMap stack:
            return
        end local 5 // io.vertx.core.Handler exceptionHandler
        end local 4 // io.vertx.core.Handler closeHandler
        end local 3 // io.vertx.core.eventbus.MessageConsumer textConsumer
        end local 2 // io.vertx.core.eventbus.MessageConsumer binaryConsumer
        end local 1 // boolean graceful
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   22     0              this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0   22     1          graceful  Z
            4   11     2    binaryConsumer  Lio/vertx/core/eventbus/MessageConsumer<*>;
           13   22     2    binaryConsumer  Lio/vertx/core/eventbus/MessageConsumer<*>;
            5   11     3      textConsumer  Lio/vertx/core/eventbus/MessageConsumer<*>;
           13   22     3      textConsumer  Lio/vertx/core/eventbus/MessageConsumer<*>;
            2   11     4      closeHandler  Lio/vertx/core/Handler<Ljava/lang/Void;>;
           13   22     4      closeHandler  Lio/vertx/core/Handler<Ljava/lang/Void;>;
            3   11     5  exceptionHandler  Lio/vertx/core/Handler<Ljava/lang/Throwable;>;
           13   22     5  exceptionHandler  Lio/vertx/core/Handler<Ljava/lang/Throwable;>;
      Exception table:
        from    to  target  type
           1    10      11  any
          11    12      11  any
    MethodParameters:
          Name  Flags
      graceful  

  private void receiveFrame(io.vertx.core.http.impl.ws.WebSocketFrameInternal);
    descriptor: (Lio/vertx/core/http/impl/ws/WebSocketFrameInternal;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.http.impl.ws.WebSocketFrameInternal frame
         0: .line 542
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 3
            monitorenter
         1: .line 543
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.frameHandler:Lio/vertx/core/Handler;
            astore 2 /* frameHandler */
        start local 2 // io.vertx.core.Handler frameHandler
         2: .line 542
            aload 3
            monitorexit
         3: goto 6
        end local 2 // io.vertx.core.Handler frameHandler
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase io.vertx.core.http.impl.ws.WebSocketFrameInternal top io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack: java.lang.Throwable
         4: aload 3
            monitorexit
         5: athrow
        start local 2 // io.vertx.core.Handler frameHandler
         6: .line 545
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase io.vertx.core.http.impl.ws.WebSocketFrameInternal io.vertx.core.Handler
      StackMap stack:
            aload 2 /* frameHandler */
            ifnull 8
         7: .line 546
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.context:Lio/vertx/core/impl/ContextInternal;
            aload 1 /* frame */
            aload 2 /* frameHandler */
            invokeinterface io.vertx.core.impl.ContextInternal.dispatch:(Ljava/lang/Object;Lio/vertx/core/Handler;)V
         8: .line 548
      StackMap locals:
      StackMap stack:
            invokestatic io.vertx.core.http.impl.WebSocketImplBase.$SWITCH_TABLE$io$vertx$core$http$impl$FrameType:()[I
            aload 1 /* frame */
            invokeinterface io.vertx.core.http.impl.ws.WebSocketFrameInternal.type:()Lio/vertx/core/http/impl/FrameType;
            invokevirtual io.vertx.core.http.impl.FrameType.ordinal:()I
            iaload
            tableswitch { // 1 - 4
                    1: 13
                    2: 13
                    3: 13
                    4: 9
              default: 16
          }
         9: .line 550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.endHandler:()Lio/vertx/core/Handler;
            astore 3 /* endHandler */
        start local 3 // io.vertx.core.Handler endHandler
        10: .line 551
            aload 3 /* endHandler */
            ifnull 16
        11: .line 552
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.context:Lio/vertx/core/impl/ContextInternal;
            aload 3 /* endHandler */
            invokeinterface io.vertx.core.impl.ContextInternal.dispatch:(Lio/vertx/core/Handler;)V
        12: .line 554
            goto 16
        end local 3 // io.vertx.core.Handler endHandler
        13: .line 558
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.handler:()Lio/vertx/core/Handler;
            astore 4 /* handler */
        start local 4 // io.vertx.core.Handler handler
        14: .line 559
            aload 4 /* handler */
            ifnull 16
        15: .line 560
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.context:Lio/vertx/core/impl/ContextInternal;
            aload 1 /* frame */
            invokeinterface io.vertx.core.http.impl.ws.WebSocketFrameInternal.binaryData:()Lio/vertx/core/buffer/Buffer;
            aload 4 /* handler */
            invokeinterface io.vertx.core.impl.ContextInternal.dispatch:(Ljava/lang/Object;Lio/vertx/core/Handler;)V
        end local 4 // io.vertx.core.Handler handler
        16: .line 564
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.vertx.core.Handler frameHandler
        end local 1 // io.vertx.core.http.impl.ws.WebSocketFrameInternal frame
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   17     0          this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0   17     1         frame  Lio/vertx/core/http/impl/ws/WebSocketFrameInternal;
            2    4     2  frameHandler  Lio/vertx/core/Handler<Lio/vertx/core/http/impl/ws/WebSocketFrameInternal;>;
            6   17     2  frameHandler  Lio/vertx/core/Handler<Lio/vertx/core/http/impl/ws/WebSocketFrameInternal;>;
           10   13     3    endHandler  Lio/vertx/core/Handler<Ljava/lang/Void;>;
           14   16     4       handler  Lio/vertx/core/Handler<Lio/vertx/core/buffer/Buffer;>;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
       Name  Flags
      frame  

  protected abstract void closeConnection();
    descriptor: ()V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  public S frameHandler(io.vertx.core.Handler<io.vertx.core.http.WebSocketFrame>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.Handler handler
         0: .line 645
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 2
            monitorenter
         1: .line 646
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.checkClosed:()V
         2: .line 647
            aload 0 /* this */
            aload 1 /* handler */
            putfield io.vertx.core.http.impl.WebSocketImplBase.frameHandler:Lio/vertx/core/Handler;
         3: .line 648
            aload 0 /* this */
            aload 2
            monitorexit
         4: areturn
         5: .line 645
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase io.vertx.core.Handler io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         6: athrow
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    7     1  handler  Lio/vertx/core/Handler<Lio/vertx/core/http/WebSocketFrame;>;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/http/WebSocketFrame;>;)TS;
    MethodParameters:
         Name  Flags
      handler  

  public io.vertx.core.http.WebSocketBase textMessageHandler(io.vertx.core.Handler<java.lang.String>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.Handler handler
         0: .line 654
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 2
            monitorenter
         1: .line 655
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.checkClosed:()V
         2: .line 656
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.frameHandler:Lio/vertx/core/Handler;
            ifnull 3
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.frameHandler:Lio/vertx/core/Handler;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Lio/vertx/core/http/impl/WebSocketImplBase$FrameAggregator;
            if_acmpeq 4
         3: .line 657
      StackMap locals: io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack:
            aload 0 /* this */
            new io.vertx.core.http.impl.WebSocketImplBase$FrameAggregator
            dup
            aload 0 /* this */
            invokespecial io.vertx.core.http.impl.WebSocketImplBase$FrameAggregator.<init>:(Lio/vertx/core/http/impl/WebSocketImplBase;)V
            putfield io.vertx.core.http.impl.WebSocketImplBase.frameHandler:Lio/vertx/core/Handler;
         4: .line 659
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.frameHandler:Lio/vertx/core/Handler;
            checkcast io.vertx.core.http.impl.WebSocketImplBase$FrameAggregator
            aload 1 /* handler */
            putfield io.vertx.core.http.impl.WebSocketImplBase$FrameAggregator.textMessageHandler:Lio/vertx/core/Handler;
         5: .line 660
            aload 0 /* this */
            aload 2
            monitorexit
         6: areturn
         7: .line 654
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         8: athrow
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    9     1  handler  Lio/vertx/core/Handler<Ljava/lang/String;>;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    Signature: (Lio/vertx/core/Handler<Ljava/lang/String;>;)Lio/vertx/core/http/WebSocketBase;
    MethodParameters:
         Name  Flags
      handler  

  public S binaryMessageHandler(io.vertx.core.Handler<io.vertx.core.buffer.Buffer>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.Handler handler
         0: .line 666
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 2
            monitorenter
         1: .line 667
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.checkClosed:()V
         2: .line 668
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.frameHandler:Lio/vertx/core/Handler;
            ifnull 3
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.frameHandler:Lio/vertx/core/Handler;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc Lio/vertx/core/http/impl/WebSocketImplBase$FrameAggregator;
            if_acmpeq 4
         3: .line 669
      StackMap locals: io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack:
            aload 0 /* this */
            new io.vertx.core.http.impl.WebSocketImplBase$FrameAggregator
            dup
            aload 0 /* this */
            invokespecial io.vertx.core.http.impl.WebSocketImplBase$FrameAggregator.<init>:(Lio/vertx/core/http/impl/WebSocketImplBase;)V
            putfield io.vertx.core.http.impl.WebSocketImplBase.frameHandler:Lio/vertx/core/Handler;
         4: .line 671
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.frameHandler:Lio/vertx/core/Handler;
            checkcast io.vertx.core.http.impl.WebSocketImplBase$FrameAggregator
            aload 1 /* handler */
            putfield io.vertx.core.http.impl.WebSocketImplBase$FrameAggregator.binaryMessageHandler:Lio/vertx/core/Handler;
         5: .line 672
            aload 0 /* this */
            aload 2
            monitorexit
         6: areturn
         7: .line 666
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         8: athrow
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    9     1  handler  Lio/vertx/core/Handler<Lio/vertx/core/buffer/Buffer;>;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/buffer/Buffer;>;)TS;
    MethodParameters:
         Name  Flags
      handler  

  public io.vertx.core.http.WebSocketBase pongHandler(io.vertx.core.Handler<io.vertx.core.buffer.Buffer>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.Handler handler
         0: .line 678
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 2
            monitorenter
         1: .line 679
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.checkClosed:()V
         2: .line 680
            aload 0 /* this */
            aload 1 /* handler */
            putfield io.vertx.core.http.impl.WebSocketImplBase.pongHandler:Lio/vertx/core/Handler;
         3: .line 681
            aload 0 /* this */
            aload 2
            monitorexit
         4: areturn
         5: .line 678
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase io.vertx.core.Handler io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         6: athrow
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    7     1  handler  Lio/vertx/core/Handler<Lio/vertx/core/buffer/Buffer;>;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/buffer/Buffer;>;)Lio/vertx/core/http/WebSocketBase;
    MethodParameters:
         Name  Flags
      handler  

  private io.vertx.core.Handler<io.vertx.core.buffer.Buffer> pongHandler();
    descriptor: ()Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 686
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 1
            monitorenter
         1: .line 687
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.pongHandler:Lio/vertx/core/Handler;
            aload 1
            monitorexit
         2: areturn
         3: .line 686
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Signature: ()Lio/vertx/core/Handler<Lio/vertx/core/buffer/Buffer;>;

  void handleWritabilityChanged(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // boolean writable
         0: .line 693
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 3
            monitorenter
         1: .line 694
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.writable:Z
            ifeq 2
            iload 1 /* writable */
            ifne 2
            iconst_1
            goto 3
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase int top io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 4 /* skip */
        start local 4 // boolean skip
         4: .line 695
            aload 0 /* this */
            iload 1 /* writable */
            putfield io.vertx.core.http.impl.WebSocketImplBase.writable:Z
         5: .line 696
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.drainHandler:Lio/vertx/core/Handler;
            astore 2 /* handler */
        start local 2 // io.vertx.core.Handler handler
         6: .line 697
            aload 2 /* handler */
            ifnull 7
            iload 4 /* skip */
            ifeq 9
         7: .line 698
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase int io.vertx.core.Handler io.vertx.core.http.impl.Http1xConnectionBase int
      StackMap stack:
            aload 3
            monitorexit
         8: return
        end local 4 // boolean skip
         9: .line 693
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        10: goto 13
        end local 2 // io.vertx.core.Handler handler
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase int top io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack: java.lang.Throwable
        11: aload 3
            monitorexit
        12: athrow
        start local 2 // io.vertx.core.Handler handler
        13: .line 701
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase int io.vertx.core.Handler
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.context:Lio/vertx/core/impl/ContextInternal;
            aconst_null
            aload 2 /* handler */
            invokeinterface io.vertx.core.impl.ContextInternal.dispatch:(Ljava/lang/Object;Lio/vertx/core/Handler;)V
        14: .line 702
            return
        end local 2 // io.vertx.core.Handler handler
        end local 1 // boolean writable
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0   15     1  writable  Z
            6   11     2   handler  Lio/vertx/core/Handler<Ljava/lang/Void;>;
           13   15     2   handler  Lio/vertx/core/Handler<Ljava/lang/Void;>;
            4    9     4      skip  Z
      Exception table:
        from    to  target  type
           1     8      11  any
           9    10      11  any
          11    12      11  any
    MethodParameters:
          Name  Flags
      writable  

  void handleException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // java.lang.Throwable t
         0: .line 706
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 3
            monitorenter
         1: .line 707
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.exceptionHandler:Lio/vertx/core/Handler;
            astore 2 /* handler */
        start local 2 // io.vertx.core.Handler handler
         2: .line 708
            aload 2 /* handler */
            ifnonnull 5
         3: .line 709
            aload 3
            monitorexit
         4: return
         5: .line 706
      StackMap locals: io.vertx.core.Handler io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack:
            aload 3
            monitorexit
         6: goto 9
        end local 2 // io.vertx.core.Handler handler
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase java.lang.Throwable top io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack: java.lang.Throwable
         7: aload 3
            monitorexit
         8: athrow
        start local 2 // io.vertx.core.Handler handler
         9: .line 712
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase java.lang.Throwable io.vertx.core.Handler
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.context:Lio/vertx/core/impl/ContextInternal;
            aload 1 /* t */
            aload 2 /* handler */
            invokeinterface io.vertx.core.impl.ContextInternal.dispatch:(Ljava/lang/Object;Lio/vertx/core/Handler;)V
        10: .line 713
            return
        end local 2 // io.vertx.core.Handler handler
        end local 1 // java.lang.Throwable t
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   11     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0   11     1        t  Ljava/lang/Throwable;
            2    7     2  handler  Lio/vertx/core/Handler<Ljava/lang/Throwable;>;
            9   11     2  handler  Lio/vertx/core/Handler<Ljava/lang/Throwable;>;
      Exception table:
        from    to  target  type
           1     4       7  any
           5     6       7  any
           7     8       7  any
    MethodParameters:
      Name  Flags
      t     

  void handleConnectionClosed();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 716
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 1
            monitorenter
         1: .line 717
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.closed:Z
            ifeq 4
         2: .line 718
            aload 1
            monitorexit
         3: return
         4: .line 720
      StackMap locals: io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield io.vertx.core.http.impl.WebSocketImplBase.closed:Z
         5: .line 716
            aload 1
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 1
            monitorexit
         8: athrow
         9: .line 722
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.handleClose:(Z)V
        10: .line 723
            return
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
      Exception table:
        from    to  target  type
           1     3       7  any
           4     6       7  any
           7     8       7  any

  synchronized void setMetric(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // java.lang.Object metric
         0: .line 726
            aload 0 /* this */
            aload 1 /* metric */
            putfield io.vertx.core.http.impl.WebSocketImplBase.metric:Ljava/lang/Object;
         1: .line 727
            return
        end local 1 // java.lang.Object metric
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    2     1  metric  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      metric  

  synchronized java.lang.Object getMetric();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0020) ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 730
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.metric:Ljava/lang/Object;
            areturn
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;

  public S handler(io.vertx.core.Handler<io.vertx.core.buffer.Buffer>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.Handler handler
         0: .line 735
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 2
            monitorenter
         1: .line 736
            aload 1 /* handler */
            ifnull 3
         2: .line 737
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.checkClosed:()V
         3: .line 739
      StackMap locals: io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack:
            aload 0 /* this */
            aload 1 /* handler */
            putfield io.vertx.core.http.impl.WebSocketImplBase.handler:Lio/vertx/core/Handler;
         4: .line 740
            aload 0 /* this */
            aload 2
            monitorexit
         5: areturn
         6: .line 735
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         7: athrow
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    8     1  handler  Lio/vertx/core/Handler<Lio/vertx/core/buffer/Buffer;>;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/buffer/Buffer;>;)TS;
    MethodParameters:
         Name  Flags
      handler  

  private io.vertx.core.Handler<io.vertx.core.buffer.Buffer> handler();
    descriptor: ()Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 745
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 1
            monitorenter
         1: .line 746
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.handler:Lio/vertx/core/Handler;
            aload 1
            monitorexit
         2: areturn
         3: .line 745
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Signature: ()Lio/vertx/core/Handler<Lio/vertx/core/buffer/Buffer;>;

  public S endHandler(io.vertx.core.Handler<java.lang.Void>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.Handler handler
         0: .line 752
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 2
            monitorenter
         1: .line 753
            aload 1 /* handler */
            ifnull 3
         2: .line 754
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.checkClosed:()V
         3: .line 756
      StackMap locals: io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack:
            aload 0 /* this */
            aload 1 /* handler */
            putfield io.vertx.core.http.impl.WebSocketImplBase.endHandler:Lio/vertx/core/Handler;
         4: .line 757
            aload 0 /* this */
            aload 2
            monitorexit
         5: areturn
         6: .line 752
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         7: athrow
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    8     1  handler  Lio/vertx/core/Handler<Ljava/lang/Void;>;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
    Signature: (Lio/vertx/core/Handler<Ljava/lang/Void;>;)TS;
    MethodParameters:
         Name  Flags
      handler  

  private io.vertx.core.Handler<java.lang.Void> endHandler();
    descriptor: ()Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 762
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 1
            monitorenter
         1: .line 763
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.endHandler:Lio/vertx/core/Handler;
            aload 1
            monitorexit
         2: areturn
         3: .line 762
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any
    Signature: ()Lio/vertx/core/Handler<Ljava/lang/Void;>;

  public S exceptionHandler(io.vertx.core.Handler<java.lang.Throwable>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.Handler handler
         0: .line 769
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 2
            monitorenter
         1: .line 770
            aload 1 /* handler */
            ifnull 3
         2: .line 771
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.checkClosed:()V
         3: .line 773
      StackMap locals: io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack:
            aload 0 /* this */
            aload 1 /* handler */
            putfield io.vertx.core.http.impl.WebSocketImplBase.exceptionHandler:Lio/vertx/core/Handler;
         4: .line 774
            aload 0 /* this */
            aload 2
            monitorexit
         5: areturn
         6: .line 769
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         7: athrow
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    8     1  handler  Lio/vertx/core/Handler<Ljava/lang/Throwable;>;
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any
    Signature: (Lio/vertx/core/Handler<Ljava/lang/Throwable;>;)TS;
    MethodParameters:
         Name  Flags
      handler  

  public S closeHandler(io.vertx.core.Handler<java.lang.Void>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.Handler handler
         0: .line 780
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 2
            monitorenter
         1: .line 781
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.checkClosed:()V
         2: .line 782
            aload 0 /* this */
            aload 1 /* handler */
            putfield io.vertx.core.http.impl.WebSocketImplBase.closeHandler:Lio/vertx/core/Handler;
         3: .line 783
            aload 0 /* this */
            aload 2
            monitorexit
         4: areturn
         5: .line 780
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase io.vertx.core.Handler io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         6: athrow
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    7     1  handler  Lio/vertx/core/Handler<Ljava/lang/Void;>;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    Signature: (Lio/vertx/core/Handler<Ljava/lang/Void;>;)TS;
    MethodParameters:
         Name  Flags
      handler  

  public S drainHandler(io.vertx.core.Handler<java.lang.Void>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.Handler handler
         0: .line 789
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 2
            monitorenter
         1: .line 790
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.checkClosed:()V
         2: .line 791
            aload 0 /* this */
            aload 1 /* handler */
            putfield io.vertx.core.http.impl.WebSocketImplBase.drainHandler:Lio/vertx/core/Handler;
         3: .line 792
            aload 0 /* this */
            aload 2
            monitorexit
         4: areturn
         5: .line 789
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase io.vertx.core.Handler io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         6: athrow
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    7     1  handler  Lio/vertx/core/Handler<Ljava/lang/Void;>;
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    Signature: (Lio/vertx/core/Handler<Ljava/lang/Void;>;)TS;
    MethodParameters:
         Name  Flags
      handler  

  public S pause();
    descriptor: ()Lio/vertx/core/http/WebSocketBase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 798
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.pending:Lio/vertx/core/streams/impl/InboundBuffer;
            invokevirtual io.vertx.core.streams.impl.InboundBuffer.pause:()Lio/vertx/core/streams/impl/InboundBuffer;
            pop
         1: .line 799
            aload 0 /* this */
            areturn
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
    Signature: ()TS;

  public S resume();
    descriptor: ()Lio/vertx/core/http/WebSocketBase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 804
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.pending:Lio/vertx/core/streams/impl/InboundBuffer;
            invokevirtual io.vertx.core.streams.impl.InboundBuffer.resume:()Z
            pop
         1: .line 805
            aload 0 /* this */
            areturn
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
    Signature: ()TS;

  public S fetch();
    descriptor: (J)Lio/vertx/core/http/WebSocketBase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // long amount
         0: .line 810
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.pending:Lio/vertx/core/streams/impl/InboundBuffer;
            lload 1 /* amount */
            invokevirtual io.vertx.core.streams.impl.InboundBuffer.fetch:(J)Z
            pop
         1: .line 811
            aload 0 /* this */
            areturn
        end local 1 // long amount
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    2     1  amount  J
    Signature: (J)TS;
    MethodParameters:
        Name  Flags
      amount  

  public S setWriteQueueMaxSize();
    descriptor: (I)Lio/vertx/core/http/WebSocketBase;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // int maxSize
         0: .line 816
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            dup
            astore 2
            monitorenter
         1: .line 817
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.checkClosed:()V
         2: .line 818
            aload 0 /* this */
            getfield io.vertx.core.http.impl.WebSocketImplBase.conn:Lio/vertx/core/http/impl/Http1xConnectionBase;
            iload 1 /* maxSize */
            invokevirtual io.vertx.core.http.impl.Http1xConnectionBase.doSetWriteQueueMaxSize:(I)V
         3: .line 819
            aload 0 /* this */
            aload 2
            monitorexit
         4: areturn
         5: .line 816
      StackMap locals: io.vertx.core.http.impl.WebSocketImplBase int io.vertx.core.http.impl.Http1xConnectionBase
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         6: athrow
        end local 1 // int maxSize
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    7     1  maxSize  I
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    Signature: (I)TS;
    MethodParameters:
         Name  Flags
      maxSize  

  public io.vertx.core.Future<java.lang.Void> end();
    descriptor: ()Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
         0: .line 825
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.close:()Lio/vertx/core/Future;
            areturn
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
    Signature: ()Lio/vertx/core/Future<Ljava/lang/Void;>;

  public void end(io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/core/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.Handler handler
         0: .line 830
            aload 0 /* this */
            aload 1 /* handler */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.close:(Lio/vertx/core/Handler;)V
         1: .line 831
            return
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    2     1  handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
         Name  Flags
      handler  

  public io.vertx.core.streams.ReadStream pause();
    descriptor: ()Lio/vertx/core/streams/ReadStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.pause:()Lio/vertx/core/http/WebSocketBase;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.streams.ReadStream handler(io.vertx.core.Handler);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/streams/ReadStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast io.vertx.core.Handler
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.handler:(Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.streams.ReadStream endHandler(io.vertx.core.Handler);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/streams/ReadStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.endHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void write(java.lang.Object, io.vertx.core.Handler);
    descriptor: (Ljava/lang/Object;Lio/vertx/core/Handler;)V
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast io.vertx.core.buffer.Buffer
            aload 2
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.write:(Lio/vertx/core/buffer/Buffer;Lio/vertx/core/Handler;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.Future write(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lio/vertx/core/Future;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast io.vertx.core.buffer.Buffer
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.write:(Lio/vertx/core/buffer/Buffer;)Lio/vertx/core/Future;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.streams.WriteStream setWriteQueueMaxSize(int);
    descriptor: (I)Lio/vertx/core/streams/WriteStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            iload 1
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.setWriteQueueMaxSize:(I)Lio/vertx/core/http/WebSocketBase;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.streams.ReadStream resume();
    descriptor: ()Lio/vertx/core/streams/ReadStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.resume:()Lio/vertx/core/http/WebSocketBase;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.streams.ReadStream fetch(long);
    descriptor: (J)Lio/vertx/core/streams/ReadStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=2
         0: .line 1
            aload 0
            lload 1
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.fetch:(J)Lio/vertx/core/http/WebSocketBase;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.streams.StreamBase exceptionHandler(io.vertx.core.Handler);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/streams/StreamBase;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.exceptionHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.streams.ReadStream exceptionHandler(io.vertx.core.Handler);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/streams/ReadStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.exceptionHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.streams.WriteStream exceptionHandler(io.vertx.core.Handler);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/streams/WriteStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.exceptionHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.streams.WriteStream drainHandler(io.vertx.core.Handler);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/streams/WriteStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.drainHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/http/WebSocketBase;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static int[] $SWITCH_TABLE$io$vertx$core$http$impl$FrameType();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 61
            getstatic io.vertx.core.http.impl.WebSocketImplBase.$SWITCH_TABLE$io$vertx$core$http$impl$FrameType:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic io.vertx.core.http.impl.FrameType.values:()[Lio/vertx/core/http/impl/FrameType;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic io.vertx.core.http.impl.FrameType.BINARY:Lio/vertx/core/http/impl/FrameType;
            invokevirtual io.vertx.core.http.impl.FrameType.ordinal:()I
            iconst_3
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic io.vertx.core.http.impl.FrameType.CLOSE:Lio/vertx/core/http/impl/FrameType;
            invokevirtual io.vertx.core.http.impl.FrameType.ordinal:()I
            iconst_4
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic io.vertx.core.http.impl.FrameType.CONTINUATION:Lio/vertx/core/http/impl/FrameType;
            invokevirtual io.vertx.core.http.impl.FrameType.ordinal:()I
            iconst_1
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic io.vertx.core.http.impl.FrameType.PING:Lio/vertx/core/http/impl/FrameType;
            invokevirtual io.vertx.core.http.impl.FrameType.ordinal:()I
            iconst_5
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic io.vertx.core.http.impl.FrameType.PONG:Lio/vertx/core/http/impl/FrameType;
            invokevirtual io.vertx.core.http.impl.FrameType.ordinal:()I
            bipush 6
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic io.vertx.core.http.impl.FrameType.TEXT:Lio/vertx/core/http/impl/FrameType;
            invokevirtual io.vertx.core.http.impl.FrameType.ordinal:()I
            iconst_2
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            dup
            putstatic io.vertx.core.http.impl.WebSocketImplBase.$SWITCH_TABLE$io$vertx$core$http$impl$FrameType:[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
          17    18      19  Class java.lang.NoSuchFieldError

  private static void lambda$1(io.vertx.core.http.impl.Http1xConnectionBase, java.lang.Void);
    descriptor: (Lio/vertx/core/http/impl/Http1xConnectionBase;Ljava/lang/Void;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 1 // java.lang.Void v
         0: .line 103
            aload 0
            invokevirtual io.vertx.core.http.impl.Http1xConnectionBase.doResume:()V
            return
        end local 1 // java.lang.Void v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     v  Ljava/lang/Void;

  private void lambda$2(io.vertx.core.eventbus.Message);
    descriptor: (Lio/vertx/core/eventbus/Message;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.eventbus.Message msg
         0: .line 107
            aload 0 /* this */
            aload 1 /* msg */
            invokeinterface io.vertx.core.eventbus.Message.body:()Ljava/lang/Object;
            checkcast io.vertx.core.buffer.Buffer
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writeBinaryFrameInternal:(Lio/vertx/core/buffer/Buffer;)V
            return
        end local 1 // io.vertx.core.eventbus.Message msg
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    1     1   msg  Lio/vertx/core/eventbus/Message<Lio/vertx/core/buffer/Buffer;>;

  private void lambda$3(io.vertx.core.eventbus.Message);
    descriptor: (Lio/vertx/core/eventbus/Message;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.vertx.core.eventbus.Message msg
         0: .line 108
            aload 0 /* this */
            aload 1 /* msg */
            invokeinterface io.vertx.core.eventbus.Message.body:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.writeTextFrameInternal:(Ljava/lang/String;)V
            return
        end local 1 // io.vertx.core.eventbus.Message msg
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    1     1   msg  Lio/vertx/core/eventbus/Message<Ljava/lang/String;>;

  private void lambda$4(io.netty.util.concurrent.Future);
    descriptor: (Lio/netty/util/concurrent/Future;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.vertx.core.http.impl.WebSocketImplBase this
        start local 1 // io.netty.util.concurrent.Future v
         0: .line 505
            aload 0 /* this */
            invokevirtual io.vertx.core.http.impl.WebSocketImplBase.closeConnection:()V
            return
        end local 1 // io.netty.util.concurrent.Future v
        end local 0 // io.vertx.core.http.impl.WebSocketImplBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/core/http/impl/WebSocketImplBase<TS;>;
            0    1     1     v  Lio/netty/util/concurrent/Future<-Ljava/lang/Void;>;
    Exceptions:
      throws java.lang.Exception
}
Signature: <S::Lio/vertx/core/http/WebSocketBase;>Ljava/lang/Object;Lio/vertx/core/http/impl/WebSocketInternal;
SourceFile: "WebSocketImplBase.java"
NestMembers:
  io.vertx.core.http.impl.WebSocketImplBase$FrameAggregator
InnerClasses:
  private FrameAggregator = io.vertx.core.http.impl.WebSocketImplBase$FrameAggregator of io.vertx.core.http.impl.WebSocketImplBase
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles