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

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

  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.DefaultNackHandler.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: "DefaultNackHandler.java"