public class io.vertx.ext.stomp.DefaultSubscribeHandler implements io.vertx.core.Handler<io.vertx.ext.stomp.ServerFrame>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.ext.stomp.DefaultSubscribeHandler
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.ext.stomp.DefaultSubscribeHandler this
         0: .line 31
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // io.vertx.ext.stomp.DefaultSubscribeHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/stomp/DefaultSubscribeHandler;

  public void handle(io.vertx.ext.stomp.ServerFrame);
    descriptor: (Lio/vertx/ext/stomp/ServerFrame;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=11, args_size=2
        start local 0 // io.vertx.ext.stomp.DefaultSubscribeHandler this
        start local 1 // io.vertx.ext.stomp.ServerFrame serverFrame
         0: .line 34
            aload 1 /* serverFrame */
            invokeinterface io.vertx.ext.stomp.ServerFrame.frame:()Lio/vertx/ext/stomp/Frame;
            astore 2 /* frame */
        start local 2 // io.vertx.ext.stomp.Frame frame
         1: .line 35
            aload 1 /* serverFrame */
            invokeinterface io.vertx.ext.stomp.ServerFrame.connection:()Lio/vertx/ext/stomp/StompServerConnection;
            astore 3 /* connection */
        start local 3 // io.vertx.ext.stomp.StompServerConnection connection
         2: .line 36
            aload 2 /* frame */
            ldc "id"
            invokevirtual io.vertx.ext.stomp.Frame.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* id */
        start local 4 // java.lang.String id
         3: .line 37
            aload 2 /* frame */
            ldc "destination"
            invokevirtual io.vertx.ext.stomp.Frame.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* destination */
        start local 5 // java.lang.String destination
         4: .line 38
            aload 2 /* frame */
            ldc "ack"
            invokevirtual io.vertx.ext.stomp.Frame.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 6 /* ack */
        start local 6 // java.lang.String ack
         5: .line 39
            aload 6 /* ack */
            ifnonnull 7
         6: .line 40
            ldc "auto"
            astore 6 /* ack */
         7: .line 43
      StackMap locals: io.vertx.ext.stomp.DefaultSubscribeHandler io.vertx.ext.stomp.ServerFrame io.vertx.ext.stomp.Frame io.vertx.ext.stomp.StompServerConnection java.lang.String java.lang.String java.lang.String
      StackMap stack:
            aload 5 /* destination */
            ifnull 8
            aload 4 /* id */
            ifnonnull 16
         8: .line 44
      StackMap locals:
      StackMap stack:
            aload 3 /* connection */
         9: .line 45
            ldc "Invalid subscription"
        10: .line 47
            aload 2 /* frame */
            invokevirtual io.vertx.ext.stomp.Frame.getHeaders:()Ljava/util/Map;
        11: .line 46
            invokestatic io.vertx.ext.stomp.utils.Headers.create:(Ljava/util/Map;)Lio/vertx/ext/stomp/utils/Headers;
        12: .line 47
            ldc "The 'destination' and 'id' headers must be set"
        13: .line 44
            invokestatic io.vertx.ext.stomp.Frames.createErrorFrame:(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Lio/vertx/ext/stomp/Frame;
            invokeinterface io.vertx.ext.stomp.StompServerConnection.write:(Lio/vertx/ext/stomp/Frame;)Lio/vertx/ext/stomp/StompServerConnection;
            pop
        14: .line 48
            aload 3 /* connection */
            invokeinterface io.vertx.ext.stomp.StompServerConnection.close:()V
        15: .line 49
            return
        16: .line 53
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* count */
        start local 7 // int count
        17: .line 54
            aload 3 /* connection */
            invokeinterface io.vertx.ext.stomp.StompServerConnection.handler:()Lio/vertx/ext/stomp/StompServerHandler;
            invokeinterface io.vertx.ext.stomp.StompServerHandler.getDestinations:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 9
            goto 35
      StackMap locals: io.vertx.ext.stomp.DefaultSubscribeHandler io.vertx.ext.stomp.ServerFrame io.vertx.ext.stomp.Frame io.vertx.ext.stomp.StompServerConnection java.lang.String java.lang.String java.lang.String int top java.util.Iterator
      StackMap stack:
        18: aload 9
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.ext.stomp.Destination
            astore 8 /* dest */
        start local 8 // io.vertx.ext.stomp.Destination dest
        19: .line 55
            aload 8 /* dest */
            aload 3 /* connection */
            invokeinterface io.vertx.ext.stomp.Destination.getSubscriptions:(Lio/vertx/ext/stomp/StompServerConnection;)Ljava/util/List;
            astore 10 /* ids */
        start local 10 // java.util.List ids
        20: .line 56
            iload 7 /* count */
            aload 10 /* ids */
            invokeinterface java.util.List.size:()I
            iadd
            istore 7 /* count */
        21: .line 57
            aload 10 /* ids */
            aload 4 /* id */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 28
        22: .line 58
            aload 3 /* connection */
        23: .line 59
            ldc "Invalid subscription"
        24: .line 60
            aload 2 /* frame */
            invokevirtual io.vertx.ext.stomp.Frame.getHeaders:()Ljava/util/Map;
            invokestatic io.vertx.ext.stomp.utils.Headers.create:(Ljava/util/Map;)Lio/vertx/ext/stomp/utils/Headers;
            ldc "'id' already used by this connection."
        25: .line 58
            invokestatic io.vertx.ext.stomp.Frames.createErrorFrame:(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Lio/vertx/ext/stomp/Frame;
            invokeinterface io.vertx.ext.stomp.StompServerConnection.write:(Lio/vertx/ext/stomp/Frame;)Lio/vertx/ext/stomp/StompServerConnection;
            pop
        26: .line 62
            aload 3 /* connection */
            invokeinterface io.vertx.ext.stomp.StompServerConnection.close:()V
        27: .line 63
            return
        28: .line 65
      StackMap locals: io.vertx.ext.stomp.DefaultSubscribeHandler io.vertx.ext.stomp.ServerFrame io.vertx.ext.stomp.Frame io.vertx.ext.stomp.StompServerConnection java.lang.String java.lang.String java.lang.String int io.vertx.ext.stomp.Destination java.util.Iterator java.util.List
      StackMap stack:
            iload 7 /* count */
            iconst_1
            iadd
            aload 3 /* connection */
            invokeinterface io.vertx.ext.stomp.StompServerConnection.server:()Lio/vertx/ext/stomp/StompServer;
            invokeinterface io.vertx.ext.stomp.StompServer.options:()Lio/vertx/ext/stomp/StompServerOptions;
            invokevirtual io.vertx.ext.stomp.StompServerOptions.getMaxSubscriptionsByClient:()I
            if_icmple 35
        29: .line 66
            aload 3 /* connection */
        30: .line 67
            ldc "Invalid subscription"
        31: .line 68
            aload 2 /* frame */
            invokevirtual io.vertx.ext.stomp.Frame.getHeaders:()Ljava/util/Map;
            invokestatic io.vertx.ext.stomp.utils.Headers.create:(Ljava/util/Map;)Lio/vertx/ext/stomp/utils/Headers;
            ldc "Too many subscriptions"
        32: .line 66
            invokestatic io.vertx.ext.stomp.Frames.createErrorFrame:(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Lio/vertx/ext/stomp/Frame;
            invokeinterface io.vertx.ext.stomp.StompServerConnection.write:(Lio/vertx/ext/stomp/Frame;)Lio/vertx/ext/stomp/StompServerConnection;
            pop
        33: .line 69
            aload 3 /* connection */
            invokeinterface io.vertx.ext.stomp.StompServerConnection.close:()V
        34: .line 70
            return
        end local 10 // java.util.List ids
        end local 8 // io.vertx.ext.stomp.Destination dest
        35: .line 54
      StackMap locals: io.vertx.ext.stomp.DefaultSubscribeHandler io.vertx.ext.stomp.ServerFrame io.vertx.ext.stomp.Frame io.vertx.ext.stomp.StompServerConnection java.lang.String java.lang.String java.lang.String int top java.util.Iterator
      StackMap stack:
            aload 9
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 18
        36: .line 74
            aload 3 /* connection */
            invokeinterface io.vertx.ext.stomp.StompServerConnection.handler:()Lio/vertx/ext/stomp/StompServerHandler;
            aload 5 /* destination */
            invokeinterface io.vertx.ext.stomp.StompServerHandler.getOrCreateDestination:(Ljava/lang/String;)Lio/vertx/ext/stomp/Destination;
            astore 8 /* dest */
        start local 8 // io.vertx.ext.stomp.Destination dest
        37: .line 75
            aload 8 /* dest */
            ifnull 45
        38: .line 76
            aload 8 /* dest */
            aload 3 /* connection */
            aload 2 /* frame */
            invokeinterface io.vertx.ext.stomp.Destination.subscribe:(Lio/vertx/ext/stomp/StompServerConnection;Lio/vertx/ext/stomp/Frame;)Lio/vertx/ext/stomp/Destination;
            ifnonnull 51
        39: .line 78
            aload 3 /* connection */
        40: .line 79
            ldc "Access denied"
        41: .line 80
            aload 2 /* frame */
            invokevirtual io.vertx.ext.stomp.Frame.getHeaders:()Ljava/util/Map;
            invokestatic io.vertx.ext.stomp.utils.Headers.create:(Ljava/util/Map;)Lio/vertx/ext/stomp/utils/Headers;
            ldc "The destination has been rejected by the server"
        42: .line 78
            invokestatic io.vertx.ext.stomp.Frames.createErrorFrame:(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Lio/vertx/ext/stomp/Frame;
            invokeinterface io.vertx.ext.stomp.StompServerConnection.write:(Lio/vertx/ext/stomp/Frame;)Lio/vertx/ext/stomp/StompServerConnection;
            pop
        43: .line 81
            aload 3 /* connection */
            invokeinterface io.vertx.ext.stomp.StompServerConnection.close:()V
        44: .line 82
            return
        45: .line 85
      StackMap locals: io.vertx.ext.stomp.DefaultSubscribeHandler io.vertx.ext.stomp.ServerFrame io.vertx.ext.stomp.Frame io.vertx.ext.stomp.StompServerConnection java.lang.String java.lang.String java.lang.String int io.vertx.ext.stomp.Destination
      StackMap stack:
            aload 3 /* connection */
        46: .line 86
            ldc "Invalid subscription"
        47: .line 87
            aload 2 /* frame */
            invokevirtual io.vertx.ext.stomp.Frame.getHeaders:()Ljava/util/Map;
            invokestatic io.vertx.ext.stomp.utils.Headers.create:(Ljava/util/Map;)Lio/vertx/ext/stomp/utils/Headers;
            ldc "The destination has been rejected by the server"
        48: .line 85
            invokestatic io.vertx.ext.stomp.Frames.createErrorFrame:(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Lio/vertx/ext/stomp/Frame;
            invokeinterface io.vertx.ext.stomp.StompServerConnection.write:(Lio/vertx/ext/stomp/Frame;)Lio/vertx/ext/stomp/StompServerConnection;
            pop
        49: .line 88
            aload 3 /* connection */
            invokeinterface io.vertx.ext.stomp.StompServerConnection.close:()V
        50: .line 89
            return
        51: .line 92
      StackMap locals:
      StackMap stack:
            aload 2 /* frame */
            aload 3 /* connection */
            invokestatic io.vertx.ext.stomp.Frames.handleReceipt:(Lio/vertx/ext/stomp/Frame;Lio/vertx/ext/stomp/StompServerConnection;)V
        52: .line 93
            return
        end local 8 // io.vertx.ext.stomp.Destination dest
        end local 7 // int count
        end local 6 // java.lang.String ack
        end local 5 // java.lang.String destination
        end local 4 // java.lang.String id
        end local 3 // io.vertx.ext.stomp.StompServerConnection connection
        end local 2 // io.vertx.ext.stomp.Frame frame
        end local 1 // io.vertx.ext.stomp.ServerFrame serverFrame
        end local 0 // io.vertx.ext.stomp.DefaultSubscribeHandler this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   53     0         this  Lio/vertx/ext/stomp/DefaultSubscribeHandler;
            0   53     1  serverFrame  Lio/vertx/ext/stomp/ServerFrame;
            1   53     2        frame  Lio/vertx/ext/stomp/Frame;
            2   53     3   connection  Lio/vertx/ext/stomp/StompServerConnection;
            3   53     4           id  Ljava/lang/String;
            4   53     5  destination  Ljava/lang/String;
            5   53     6          ack  Ljava/lang/String;
           17   53     7        count  I
           19   35     8         dest  Lio/vertx/ext/stomp/Destination;
           20   35    10          ids  Ljava/util/List<Ljava/lang/String;>;
           37   53     8         dest  Lio/vertx/ext/stomp/Destination;
    MethodParameters:
             Name  Flags
      serverFrame  

  public void handle(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    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.ext.stomp.ServerFrame
            invokevirtual io.vertx.ext.stomp.DefaultSubscribeHandler.handle:(Lio/vertx/ext/stomp/ServerFrame;)V
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Lio/vertx/core/Handler<Lio/vertx/ext/stomp/ServerFrame;>;
SourceFile: "DefaultSubscribeHandler.java"