public class io.vertx.ext.stomp.DefaultAckHandler 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.DefaultAckHandler
  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.DefaultAckHandler this
         0: .line 35
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // io.vertx.ext.stomp.DefaultAckHandler this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/stomp/DefaultAckHandler;

  public void handle(io.vertx.ext.stomp.ServerFrame);
    descriptor: (Lio/vertx/ext/stomp/ServerFrame;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=2
        start local 0 // io.vertx.ext.stomp.DefaultAckHandler this
        start local 1 // io.vertx.ext.stomp.ServerFrame serverFrame
         0: .line 39
            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 40
            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 41
            aload 2 /* frame */
            invokevirtual io.vertx.ext.stomp.Frame.getId:()Ljava/lang/String;
            astore 4 /* id */
        start local 4 // java.lang.String id
         3: .line 42
            aload 4 /* id */
            ifnonnull 10
         4: .line 43
            aload 3 /* connection */
         5: .line 44
            ldc "Id header missing"
         6: .line 45
            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 "Invalid ACK frame - the 'id' must be set"
         7: .line 43
            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
         8: .line 47
            aload 3 /* connection */
            invokeinterface io.vertx.ext.stomp.StompServerConnection.close:()V
         9: .line 48
            return
        10: .line 52
      StackMap locals: io.vertx.ext.stomp.Frame io.vertx.ext.stomp.StompServerConnection java.lang.String
      StackMap stack:
            aload 2 /* frame */
            ldc "transaction"
            invokevirtual io.vertx.ext.stomp.Frame.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* txId */
        start local 5 // java.lang.String txId
        11: .line 53
            aload 5 /* txId */
            ifnull 32
        12: .line 54
            invokestatic io.vertx.ext.stomp.impl.Transactions.instance:()Lio/vertx/ext/stomp/impl/Transactions;
            aload 3 /* connection */
            aload 5 /* txId */
            invokevirtual io.vertx.ext.stomp.impl.Transactions.getTransaction:(Lio/vertx/ext/stomp/StompServerConnection;Ljava/lang/String;)Lio/vertx/ext/stomp/impl/Transaction;
            astore 6 /* transaction */
        start local 6 // io.vertx.ext.stomp.impl.Transaction transaction
        13: .line 55
            aload 6 /* transaction */
            ifnonnull 21
        14: .line 58
            ldc "No transaction"
            iconst_4
            anewarray java.lang.String
            dup
            iconst_0
        15: .line 59
            ldc "id"
            aastore
            dup
            iconst_1
            aload 4 /* id */
            aastore
            dup
            iconst_2
            ldc "transaction"
            aastore
            dup
            iconst_3
            aload 5 /* txId */
            aastore
            invokestatic io.vertx.ext.stomp.utils.Headers.create:([Ljava/lang/String;)Lio/vertx/ext/stomp/utils/Headers;
        16: .line 60
            ldc "Message delivery failed - unknown transaction id in ACK message"
        17: .line 57
            invokestatic io.vertx.ext.stomp.Frames.createErrorFrame:(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Lio/vertx/ext/stomp/Frame;
            astore 7 /* errorFrame */
        start local 7 // io.vertx.ext.stomp.Frame errorFrame
        18: .line 61
            aload 3 /* connection */
            aload 7 /* errorFrame */
            invokeinterface io.vertx.ext.stomp.StompServerConnection.write:(Lio/vertx/ext/stomp/Frame;)Lio/vertx/ext/stomp/StompServerConnection;
            pop
        19: .line 62
            aload 3 /* connection */
            invokeinterface io.vertx.ext.stomp.StompServerConnection.close:()V
        20: .line 63
            return
        end local 7 // io.vertx.ext.stomp.Frame errorFrame
        21: .line 65
      StackMap locals: java.lang.String io.vertx.ext.stomp.impl.Transaction
      StackMap stack:
            aload 6 /* transaction */
            aload 2 /* frame */
            invokevirtual io.vertx.ext.stomp.impl.Transaction.addFrameToTransaction:(Lio/vertx/ext/stomp/Frame;)Z
            ifne 30
        22: .line 67
            ldc "Frame not added to transaction"
            iconst_4
            anewarray java.lang.String
            dup
            iconst_0
        23: .line 68
            ldc "id"
            aastore
            dup
            iconst_1
            aload 4 /* id */
            aastore
            dup
            iconst_2
            ldc "transaction"
            aastore
            dup
            iconst_3
            aload 5 /* txId */
            aastore
            invokestatic io.vertx.ext.stomp.utils.Headers.create:([Ljava/lang/String;)Lio/vertx/ext/stomp/utils/Headers;
        24: .line 69
            ldc "Message delivery failed - the frame cannot be added to the transaction - the number of allowed thread may have been reached"
        25: .line 67
            invokestatic io.vertx.ext.stomp.Frames.createErrorFrame:(Ljava/lang/String;Ljava/util/Map;Ljava/lang/String;)Lio/vertx/ext/stomp/Frame;
            astore 7 /* errorFrame */
        start local 7 // io.vertx.ext.stomp.Frame errorFrame
        26: .line 71
            invokestatic io.vertx.ext.stomp.impl.Transactions.instance:()Lio/vertx/ext/stomp/impl/Transactions;
            aload 3 /* connection */
            invokevirtual io.vertx.ext.stomp.impl.Transactions.unregisterTransactionsFromConnection:(Lio/vertx/ext/stomp/StompServerConnection;)V
        27: .line 72
            aload 3 /* connection */
            aload 7 /* errorFrame */
            invokeinterface io.vertx.ext.stomp.StompServerConnection.write:(Lio/vertx/ext/stomp/Frame;)Lio/vertx/ext/stomp/StompServerConnection;
            pop
        28: .line 73
            aload 3 /* connection */
            invokeinterface io.vertx.ext.stomp.StompServerConnection.close:()V
        29: .line 74
            return
        end local 7 // io.vertx.ext.stomp.Frame errorFrame
        30: .line 76
      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
        31: .line 78
            return
        end local 6 // io.vertx.ext.stomp.impl.Transaction transaction
        32: .line 82
      StackMap locals:
      StackMap stack:
            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;
            astore 6 /* destinations */
        start local 6 // java.util.List destinations
        33: .line 83
            aload 6 /* destinations */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 8
            goto 37
      StackMap locals: io.vertx.ext.stomp.DefaultAckHandler io.vertx.ext.stomp.ServerFrame io.vertx.ext.stomp.Frame io.vertx.ext.stomp.StompServerConnection java.lang.String java.lang.String java.util.List top java.util.Iterator
      StackMap stack:
        34: aload 8
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast io.vertx.ext.stomp.Destination
            astore 7 /* destination */
        start local 7 // io.vertx.ext.stomp.Destination destination
        35: .line 84
            aload 7 /* destination */
            aload 3 /* connection */
            aload 2 /* frame */
            invokeinterface io.vertx.ext.stomp.Destination.ack:(Lio/vertx/ext/stomp/StompServerConnection;Lio/vertx/ext/stomp/Frame;)Z
            ifeq 37
        36: .line 85
            goto 38
        end local 7 // io.vertx.ext.stomp.Destination destination
        37: .line 83
      StackMap locals:
      StackMap stack:
            aload 8
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 34
        38: .line 89
      StackMap locals: io.vertx.ext.stomp.DefaultAckHandler io.vertx.ext.stomp.ServerFrame io.vertx.ext.stomp.Frame io.vertx.ext.stomp.StompServerConnection java.lang.String java.lang.String java.util.List
      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
        39: .line 90
            return
        end local 6 // java.util.List destinations
        end local 5 // java.lang.String txId
        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.DefaultAckHandler this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   40     0          this  Lio/vertx/ext/stomp/DefaultAckHandler;
            0   40     1   serverFrame  Lio/vertx/ext/stomp/ServerFrame;
            1   40     2         frame  Lio/vertx/ext/stomp/Frame;
            2   40     3    connection  Lio/vertx/ext/stomp/StompServerConnection;
            3   40     4            id  Ljava/lang/String;
           11   40     5          txId  Ljava/lang/String;
           13   32     6   transaction  Lio/vertx/ext/stomp/impl/Transaction;
           18   21     7    errorFrame  Lio/vertx/ext/stomp/Frame;
           26   30     7    errorFrame  Lio/vertx/ext/stomp/Frame;
           33   40     6  destinations  Ljava/util/List<Lio/vertx/ext/stomp/Destination;>;
           35   37     7   destination  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.DefaultAckHandler.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: "DefaultAckHandler.java"