public class io.vertx.amqp.impl.AmqpReceiverImpl implements io.vertx.amqp.AmqpReceiver
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.amqp.impl.AmqpReceiverImpl
  super_class: java.lang.Object
{
  private static final io.vertx.core.logging.Logger LOGGER;
    descriptor: Lio/vertx/core/logging/Logger;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final io.vertx.proton.ProtonReceiver receiver;
    descriptor: Lio/vertx/proton/ProtonReceiver;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.vertx.amqp.impl.AmqpConnectionImpl connection;
    descriptor: Lio/vertx/amqp/impl/AmqpConnectionImpl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Queue<io.vertx.amqp.impl.AmqpMessageImpl> buffered;
    descriptor: Ljava/util/Queue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Queue<Lio/vertx/amqp/impl/AmqpMessageImpl;>;

  private final boolean durable;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean autoAck;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

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

  private long demand;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

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

  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;>;

  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 boolean initialCreditGiven;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int initialCredit;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 37
            ldc Lio/vertx/amqp/impl/AmqpReceiverImpl;
            invokestatic io.vertx.core.logging.LoggerFactory.getLogger:(Ljava/lang/Class;)Lio/vertx/core/logging/Logger;
            putstatic io.vertx.amqp.impl.AmqpReceiverImpl.LOGGER:Lio/vertx/core/logging/Logger;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(java.lang.String, io.vertx.amqp.impl.AmqpConnectionImpl, io.vertx.amqp.AmqpReceiverOptions, io.vertx.proton.ProtonReceiver, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.amqp.AmqpReceiver>>);
    descriptor: (Ljava/lang/String;Lio/vertx/amqp/impl/AmqpConnectionImpl;Lio/vertx/amqp/AmqpReceiverOptions;Lio/vertx/proton/ProtonReceiver;Lio/vertx/core/Handler;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=6
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
        start local 1 // java.lang.String address
        start local 2 // io.vertx.amqp.impl.AmqpConnectionImpl connection
        start local 3 // io.vertx.amqp.AmqpReceiverOptions options
        start local 4 // io.vertx.proton.ProtonReceiver receiver
        start local 5 // io.vertx.core.Handler completionHandler
         0: .line 66
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 40
            aload 0 /* this */
            new java.util.ArrayDeque
            dup
            invokespecial java.util.ArrayDeque.<init>:()V
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.buffered:Ljava/util/Queue;
         2: .line 49
            aload 0 /* this */
            ldc 9223372036854775807
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.demand:J
         3: .line 54
            aload 0 /* this */
            sipush 1000
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.initialCredit:I
         4: .line 72
            aload 0 /* this */
            aload 1 /* address */
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.address:Ljava/lang/String;
         5: .line 73
            aload 0 /* this */
            aload 4 /* receiver */
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.receiver:Lio/vertx/proton/ProtonReceiver;
         6: .line 74
            aload 0 /* this */
            aload 2 /* connection */
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.connection:Lio/vertx/amqp/impl/AmqpConnectionImpl;
         7: .line 75
            aload 0 /* this */
            aload 3 /* options */
            invokevirtual io.vertx.amqp.AmqpReceiverOptions.isDurable:()Z
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.durable:Z
         8: .line 76
            aload 0 /* this */
            aload 3 /* options */
            invokevirtual io.vertx.amqp.AmqpReceiverOptions.isAutoAcknowledgement:()Z
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.autoAck:Z
         9: .line 77
            aload 3 /* options */
            invokevirtual io.vertx.amqp.AmqpReceiverOptions.getMaxBufferedMessages:()I
            istore 6 /* maxBufferedMessages */
        start local 6 // int maxBufferedMessages
        10: .line 78
            iload 6 /* maxBufferedMessages */
            ifle 12
        11: .line 79
            aload 0 /* this */
            iload 6 /* maxBufferedMessages */
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.initialCredit:I
        12: .line 84
      StackMap locals: io.vertx.amqp.impl.AmqpReceiverImpl java.lang.String io.vertx.amqp.impl.AmqpConnectionImpl io.vertx.amqp.AmqpReceiverOptions io.vertx.proton.ProtonReceiver io.vertx.core.Handler int
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.receiver:Lio/vertx/proton/ProtonReceiver;
        13: .line 85
            iconst_0
            invokeinterface io.vertx.proton.ProtonReceiver.setAutoAccept:(Z)Lio/vertx/proton/ProtonReceiver;
        14: .line 86
            iconst_0
            invokeinterface io.vertx.proton.ProtonReceiver.setPrefetch:(I)Lio/vertx/proton/ProtonReceiver;
            pop
        15: .line 88
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.receiver:Lio/vertx/proton/ProtonReceiver;
            aload 0 /* this */
            aload 2 /* connection */
            invokedynamic handle(Lio/vertx/amqp/impl/AmqpReceiverImpl;Lio/vertx/amqp/impl/AmqpConnectionImpl;)Lio/vertx/proton/ProtonMessageHandler;
              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/vertx/proton/ProtonDelivery;Lorg/apache/qpid/proton/message/Message;)V
                  io/vertx/amqp/impl/AmqpReceiverImpl.lambda$0(Lio/vertx/amqp/impl/AmqpConnectionImpl;Lio/vertx/proton/ProtonDelivery;Lorg/apache/qpid/proton/message/Message;)V (7)
                  (Lio/vertx/proton/ProtonDelivery;Lorg/apache/qpid/proton/message/Message;)V
            invokeinterface io.vertx.proton.ProtonReceiver.handler:(Lio/vertx/proton/ProtonMessageHandler;)Lio/vertx/proton/ProtonReceiver;
            pop
        16: .line 90
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.receiver:Lio/vertx/proton/ProtonReceiver;
            aload 0 /* this */
            aload 1 /* address */
            aload 4 /* receiver */
            invokedynamic handle(Lio/vertx/amqp/impl/AmqpReceiverImpl;Ljava/lang/String;Lio/vertx/proton/ProtonReceiver;)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/amqp/impl/AmqpReceiverImpl.lambda$1(Ljava/lang/String;Lio/vertx/proton/ProtonReceiver;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.proton.ProtonReceiver.closeHandler:(Lio/vertx/core/Handler;)Lio/vertx/proton/ProtonLink;
            checkcast io.vertx.proton.ProtonReceiver
        17: .line 93
            aload 0 /* this */
            aload 1 /* address */
            aload 4 /* receiver */
            invokedynamic handle(Lio/vertx/amqp/impl/AmqpReceiverImpl;Ljava/lang/String;Lio/vertx/proton/ProtonReceiver;)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/amqp/impl/AmqpReceiverImpl.lambda$2(Ljava/lang/String;Lio/vertx/proton/ProtonReceiver;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.proton.ProtonReceiver.detachHandler:(Lio/vertx/core/Handler;)Lio/vertx/proton/ProtonLink;
            pop
        18: .line 97
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.receiver:Lio/vertx/proton/ProtonReceiver;
        19: .line 98
            aload 0 /* this */
            aload 5 /* completionHandler */
            invokedynamic handle(Lio/vertx/amqp/impl/AmqpReceiverImpl;Lio/vertx/core/Handler;)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/amqp/impl/AmqpReceiverImpl.lambda$3(Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.proton.ProtonReceiver.openHandler:(Lio/vertx/core/Handler;)Lio/vertx/proton/ProtonLink;
            pop
        20: .line 112
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.receiver:Lio/vertx/proton/ProtonReceiver;
            invokeinterface io.vertx.proton.ProtonReceiver.open:()Lio/vertx/proton/ProtonLink;
            pop
        21: .line 113
            return
        end local 6 // int maxBufferedMessages
        end local 5 // io.vertx.core.Handler completionHandler
        end local 4 // io.vertx.proton.ProtonReceiver receiver
        end local 3 // io.vertx.amqp.AmqpReceiverOptions options
        end local 2 // io.vertx.amqp.impl.AmqpConnectionImpl connection
        end local 1 // java.lang.String address
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   22     0                 this  Lio/vertx/amqp/impl/AmqpReceiverImpl;
            0   22     1              address  Ljava/lang/String;
            0   22     2           connection  Lio/vertx/amqp/impl/AmqpConnectionImpl;
            0   22     3              options  Lio/vertx/amqp/AmqpReceiverOptions;
            0   22     4             receiver  Lio/vertx/proton/ProtonReceiver;
            0   22     5    completionHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/amqp/AmqpReceiver;>;>;
           10   22     6  maxBufferedMessages  I
    Signature: (Ljava/lang/String;Lio/vertx/amqp/impl/AmqpConnectionImpl;Lio/vertx/amqp/AmqpReceiverOptions;Lio/vertx/proton/ProtonReceiver;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/amqp/AmqpReceiver;>;>;)V
    MethodParameters:
                   Name  Flags
      address            
      connection         
      options            
      receiver           
      completionHandler  

  private void onClose(java.lang.String, io.vertx.proton.ProtonReceiver, io.vertx.core.AsyncResult<io.vertx.proton.ProtonReceiver>, );
    descriptor: (Ljava/lang/String;Lio/vertx/proton/ProtonReceiver;Lio/vertx/core/AsyncResult;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=5
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
        start local 1 // java.lang.String address
        start local 2 // io.vertx.proton.ProtonReceiver receiver
        start local 3 // io.vertx.core.AsyncResult res
        start local 4 // boolean detach
         0: .line 116
            aconst_null
            astore 5 /* endh */
        start local 5 // io.vertx.core.Handler endh
         1: .line 117
            aconst_null
            astore 6 /* exh */
        start local 6 // io.vertx.core.Handler exh
         2: .line 118
            iconst_0
            istore 7 /* closeReceiver */
        start local 7 // boolean closeReceiver
         3: .line 120
            aload 0 /* this */
            dup
            astore 8
            monitorenter
         4: .line 121
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.closed:Z
            ifne 7
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.endHandler:Lio/vertx/core/Handler;
            ifnull 7
         5: .line 122
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.endHandler:Lio/vertx/core/Handler;
            astore 5 /* endh */
         6: .line 123
            goto 9
      StackMap locals: io.vertx.amqp.impl.AmqpReceiverImpl java.lang.String io.vertx.proton.ProtonReceiver io.vertx.core.AsyncResult int io.vertx.core.Handler io.vertx.core.Handler int io.vertx.amqp.impl.AmqpReceiverImpl
      StackMap stack:
         7: aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.closed:Z
            ifne 9
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.exceptionHandler:Lio/vertx/core/Handler;
            ifnull 9
         8: .line 124
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.exceptionHandler:Lio/vertx/core/Handler;
            astore 6 /* exh */
         9: .line 127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.closed:Z
            ifne 12
        10: .line 128
            aload 0 /* this */
            iconst_1
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.closed:Z
        11: .line 129
            iconst_1
            istore 7 /* closeReceiver */
        12: .line 120
      StackMap locals:
      StackMap stack:
            aload 8
            monitorexit
        13: goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: aload 8
            monitorexit
        15: athrow
        16: .line 133
      StackMap locals:
      StackMap stack:
            aload 5 /* endh */
            ifnull 19
        17: .line 134
            aload 5 /* endh */
            aconst_null
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        18: .line 135
            goto 29
      StackMap locals:
      StackMap stack:
        19: aload 6 /* exh */
            ifnull 25
        20: .line 136
            aload 3 /* res */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 23
        21: .line 137
            aload 6 /* exh */
            new io.vertx.core.VertxException
            dup
            ldc "Consumer closed remotely"
            invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/String;)V
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        22: .line 138
            goto 29
        23: .line 139
      StackMap locals:
      StackMap stack:
            aload 6 /* exh */
            new io.vertx.core.VertxException
            dup
            ldc "Consumer closed remotely with error"
            aload 3 /* res */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        24: .line 141
            goto 29
        25: .line 142
      StackMap locals:
      StackMap stack:
            aload 3 /* res */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 28
        26: .line 143
            getstatic io.vertx.amqp.impl.AmqpReceiverImpl.LOGGER:Lio/vertx/core/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Consumer for address "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* address */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " unexpectedly closed remotely"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual io.vertx.core.logging.Logger.warn:(Ljava/lang/Object;)V
        27: .line 144
            goto 29
        28: .line 145
      StackMap locals:
      StackMap stack:
            getstatic io.vertx.amqp.impl.AmqpReceiverImpl.LOGGER:Lio/vertx/core/logging/Logger;
            new java.lang.StringBuilder
            dup
            ldc "Consumer for address "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* address */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " unexpectedly closed remotely with error"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 3 /* res */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokevirtual io.vertx.core.logging.Logger.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        29: .line 149
      StackMap locals:
      StackMap stack:
            iload 7 /* closeReceiver */
            ifeq 34
        30: .line 150
            iload 4 /* detach */
            ifeq 33
        31: .line 151
            aload 2 /* receiver */
            invokeinterface io.vertx.proton.ProtonReceiver.detach:()Lio/vertx/proton/ProtonLink;
            pop
        32: .line 152
            goto 34
        33: .line 153
      StackMap locals:
      StackMap stack:
            aload 2 /* receiver */
            invokeinterface io.vertx.proton.ProtonReceiver.close:()Lio/vertx/proton/ProtonLink;
            pop
        34: .line 156
      StackMap locals:
      StackMap stack:
            return
        end local 7 // boolean closeReceiver
        end local 6 // io.vertx.core.Handler exh
        end local 5 // io.vertx.core.Handler endh
        end local 4 // boolean detach
        end local 3 // io.vertx.core.AsyncResult res
        end local 2 // io.vertx.proton.ProtonReceiver receiver
        end local 1 // java.lang.String address
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   35     0           this  Lio/vertx/amqp/impl/AmqpReceiverImpl;
            0   35     1        address  Ljava/lang/String;
            0   35     2       receiver  Lio/vertx/proton/ProtonReceiver;
            0   35     3            res  Lio/vertx/core/AsyncResult<Lio/vertx/proton/ProtonReceiver;>;
            0   35     4         detach  Z
            1   35     5           endh  Lio/vertx/core/Handler<Ljava/lang/Void;>;
            2   35     6            exh  Lio/vertx/core/Handler<Ljava/lang/Throwable;>;
            3   35     7  closeReceiver  Z
      Exception table:
        from    to  target  type
           4    13      14  any
          14    15      14  any
    Signature: (Ljava/lang/String;Lio/vertx/proton/ProtonReceiver;Lio/vertx/core/AsyncResult<Lio/vertx/proton/ProtonReceiver;>;Z)V
    MethodParameters:
          Name  Flags
      address   
      receiver  
      res       
      detach    

  private void handleMessage(io.vertx.amqp.impl.AmqpMessageImpl);
    descriptor: (Lio/vertx/amqp/impl/AmqpMessageImpl;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
        start local 1 // io.vertx.amqp.impl.AmqpMessageImpl message
         0: .line 159
            iconst_0
            istore 2 /* schedule */
        start local 2 // boolean schedule
         1: .line 162
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         2: .line 163
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.handler:Lio/vertx/core/Handler;
            astore 3 /* h */
        start local 3 // io.vertx.core.Handler h
         3: .line 164
            aload 3 /* h */
            ifnull 4
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.demand:J
            lconst_0
            lcmp
            ifne 7
         4: .line 166
      StackMap locals: int io.vertx.core.Handler io.vertx.amqp.impl.AmqpReceiverImpl
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.buffered:Ljava/util/Queue;
            aload 1 /* message */
            invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
            pop
         5: .line 167
            aload 4
            monitorexit
         6: return
         7: .line 170
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.buffered:Ljava/util/Queue;
            invokeinterface java.util.Queue.isEmpty:()Z
            ifne 11
         8: .line 172
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.buffered:Ljava/util/Queue;
            aload 1 /* message */
            invokeinterface java.util.Queue.add:(Ljava/lang/Object;)Z
            pop
         9: .line 173
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.buffered:Ljava/util/Queue;
            invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
            checkcast io.vertx.amqp.impl.AmqpMessageImpl
            astore 1 /* message */
        10: .line 175
            iconst_1
            istore 2 /* schedule */
        11: .line 177
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.demand:J
            ldc 9223372036854775807
            lcmp
            ifeq 13
        12: .line 178
            aload 0 /* this */
            dup
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.demand:J
            lconst_1
            lsub
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.demand:J
        13: .line 162
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        14: goto 17
        end local 3 // io.vertx.core.Handler h
      StackMap locals: io.vertx.amqp.impl.AmqpReceiverImpl io.vertx.amqp.impl.AmqpMessageImpl int top io.vertx.amqp.impl.AmqpReceiverImpl
      StackMap stack: java.lang.Throwable
        15: aload 4
            monitorexit
        16: athrow
        start local 3 // io.vertx.core.Handler h
        17: .line 181
      StackMap locals: io.vertx.amqp.impl.AmqpReceiverImpl io.vertx.amqp.impl.AmqpMessageImpl int io.vertx.core.Handler
      StackMap stack:
            aload 0 /* this */
            aload 3 /* h */
            aload 1 /* message */
            invokevirtual io.vertx.amqp.impl.AmqpReceiverImpl.deliverMessageToHandler:(Lio/vertx/core/Handler;Lio/vertx/amqp/impl/AmqpMessageImpl;)V
        18: .line 184
            iload 2 /* schedule */
            ifeq 20
        19: .line 185
            aload 0 /* this */
            invokevirtual io.vertx.amqp.impl.AmqpReceiverImpl.scheduleBufferedMessageDelivery:()V
        20: .line 187
      StackMap locals:
      StackMap stack:
            return
        end local 3 // io.vertx.core.Handler h
        end local 2 // boolean schedule
        end local 1 // io.vertx.amqp.impl.AmqpMessageImpl message
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   21     0      this  Lio/vertx/amqp/impl/AmqpReceiverImpl;
            0   21     1   message  Lio/vertx/amqp/impl/AmqpMessageImpl;
            1   21     2  schedule  Z
            3   15     3         h  Lio/vertx/core/Handler<Lio/vertx/amqp/AmqpMessage;>;
           17   21     3         h  Lio/vertx/core/Handler<Lio/vertx/amqp/AmqpMessage;>;
      Exception table:
        from    to  target  type
           2     6      15  any
           7    14      15  any
          15    16      15  any
    MethodParameters:
         Name  Flags
      message  

  public synchronized io.vertx.amqp.AmqpReceiver exceptionHandler(io.vertx.core.Handler<java.lang.Throwable>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/amqp/AmqpReceiver;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
        start local 1 // io.vertx.core.Handler handler
         0: .line 191
            aload 0 /* this */
            aload 1 /* handler */
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.exceptionHandler:Lio/vertx/core/Handler;
         1: .line 192
            aload 0 /* this */
            areturn
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/amqp/impl/AmqpReceiverImpl;
            0    2     1  handler  Lio/vertx/core/Handler<Ljava/lang/Throwable;>;
    Signature: (Lio/vertx/core/Handler<Ljava/lang/Throwable;>;)Lio/vertx/amqp/AmqpReceiver;
    MethodParameters:
         Name  Flags
      handler  

  public io.vertx.amqp.AmqpReceiver handler(io.vertx.core.Handler<io.vertx.amqp.AmqpMessage>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/amqp/AmqpReceiver;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
        start local 1 // io.vertx.core.Handler handler
         0: .line 197
            iconst_0
            istore 2 /* creditToFlow */
        start local 2 // int creditToFlow
         1: .line 198
            iconst_0
            istore 3 /* schedule */
        start local 3 // boolean schedule
         2: .line 200
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         3: .line 201
            aload 0 /* this */
            aload 1 /* handler */
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.handler:Lio/vertx/core/Handler;
         4: .line 202
            aload 1 /* handler */
            ifnull 9
         5: .line 203
            iconst_1
            istore 3 /* schedule */
         6: .line 206
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.initialCreditGiven:Z
            ifne 9
         7: .line 207
            aload 0 /* this */
            iconst_1
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.initialCreditGiven:Z
         8: .line 208
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.initialCredit:I
            istore 2 /* creditToFlow */
         9: .line 200
      StackMap locals: int int io.vertx.amqp.impl.AmqpReceiverImpl
      StackMap stack:
            aload 4
            monitorexit
        10: goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: aload 4
            monitorexit
        12: athrow
        13: .line 213
      StackMap locals:
      StackMap stack:
            iload 2 /* creditToFlow */
            ifle 16
        14: .line 214
            iload 2 /* creditToFlow */
            istore 4 /* c */
        start local 4 // int c
        15: .line 215
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.connection:Lio/vertx/amqp/impl/AmqpConnectionImpl;
            aload 0 /* this */
            iload 4 /* c */
            invokedynamic handle(Lio/vertx/amqp/impl/AmqpReceiverImpl;I)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/amqp/impl/AmqpReceiverImpl.lambda$4(ILjava/lang/Void;)V (7)
                  (Ljava/lang/Void;)V
            invokevirtual io.vertx.amqp.impl.AmqpConnectionImpl.runWithTrampoline:(Lio/vertx/core/Handler;)V
        end local 4 // int c
        16: .line 218
      StackMap locals:
      StackMap stack:
            iload 3 /* schedule */
            ifeq 18
        17: .line 219
            aload 0 /* this */
            invokevirtual io.vertx.amqp.impl.AmqpReceiverImpl.scheduleBufferedMessageDelivery:()V
        18: .line 222
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 3 // boolean schedule
        end local 2 // int creditToFlow
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   19     0          this  Lio/vertx/amqp/impl/AmqpReceiverImpl;
            0   19     1       handler  Lio/vertx/core/Handler<Lio/vertx/amqp/AmqpMessage;>;
            1   19     2  creditToFlow  I
            2   19     3      schedule  Z
           15   16     4             c  I
      Exception table:
        from    to  target  type
           3    10      11  any
          11    12      11  any
    Signature: (Lio/vertx/core/Handler<Lio/vertx/amqp/AmqpMessage;>;)Lio/vertx/amqp/AmqpReceiver;
    RuntimeVisibleTypeAnnotations: 
      METHOD_FORMAL_PARAMETER
        io.vertx.codegen.annotations.Nullable()
    MethodParameters:
         Name  Flags
      handler  

  public synchronized io.vertx.amqp.impl.AmqpReceiverImpl pause();
    descriptor: ()Lio/vertx/amqp/impl/AmqpReceiverImpl;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
         0: .line 227
            aload 0 /* this */
            lconst_0
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.demand:J
         1: .line 228
            aload 0 /* this */
            areturn
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/amqp/impl/AmqpReceiverImpl;

  public synchronized io.vertx.amqp.impl.AmqpReceiverImpl fetch(long);
    descriptor: (J)Lio/vertx/amqp/impl/AmqpReceiverImpl;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
        start local 1 // long amount
         0: .line 233
            lload 1 /* amount */
            lconst_0
            lcmp
            ifle 5
         1: .line 234
            aload 0 /* this */
            dup
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.demand:J
            lload 1 /* amount */
            ladd
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.demand:J
         2: .line 235
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.demand:J
            lconst_0
            lcmp
            ifge 4
         3: .line 236
            aload 0 /* this */
            ldc 9223372036854775807
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.demand:J
         4: .line 238
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.amqp.impl.AmqpReceiverImpl.scheduleBufferedMessageDelivery:()V
         5: .line 240
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // long amount
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lio/vertx/amqp/impl/AmqpReceiverImpl;
            0    6     1  amount  J
    MethodParameters:
        Name  Flags
      amount  

  public synchronized io.vertx.amqp.impl.AmqpReceiverImpl resume();
    descriptor: ()Lio/vertx/amqp/impl/AmqpReceiverImpl;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
         0: .line 245
            aload 0 /* this */
            ldc 9223372036854775807
            invokevirtual io.vertx.amqp.impl.AmqpReceiverImpl.fetch:(J)Lio/vertx/amqp/impl/AmqpReceiverImpl;
            areturn
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/amqp/impl/AmqpReceiverImpl;

  public synchronized io.vertx.amqp.impl.AmqpReceiverImpl endHandler(io.vertx.core.Handler<java.lang.Void>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/amqp/impl/AmqpReceiverImpl;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
        start local 1 // io.vertx.core.Handler endHandler
         0: .line 250
            aload 0 /* this */
            aload 1 /* endHandler */
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.endHandler:Lio/vertx/core/Handler;
         1: .line 251
            aload 0 /* this */
            areturn
        end local 1 // io.vertx.core.Handler endHandler
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lio/vertx/amqp/impl/AmqpReceiverImpl;
            0    2     1  endHandler  Lio/vertx/core/Handler<Ljava/lang/Void;>;
    Signature: (Lio/vertx/core/Handler<Ljava/lang/Void;>;)Lio/vertx/amqp/impl/AmqpReceiverImpl;
    MethodParameters:
            Name  Flags
      endHandler  

  private void deliverMessageToHandler(io.vertx.core.Handler<io.vertx.amqp.AmqpMessage>, io.vertx.amqp.impl.AmqpMessageImpl);
    descriptor: (Lio/vertx/core/Handler;Lio/vertx/amqp/impl/AmqpMessageImpl;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
        start local 1 // io.vertx.core.Handler h
        start local 2 // io.vertx.amqp.impl.AmqpMessageImpl message
         0: .line 256
            aload 1 /* h */
            aload 2 /* message */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         1: .line 257
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.autoAck:Z
            ifeq 8
         2: .line 258
            aload 2 /* message */
            invokevirtual io.vertx.amqp.impl.AmqpMessageImpl.accepted:()Lio/vertx/amqp/AmqpMessage;
            pop
         3: .line 260
            goto 8
      StackMap locals:
      StackMap stack: java.lang.Exception
         4: astore 3 /* e */
        start local 3 // java.lang.Exception e
         5: .line 261
            getstatic io.vertx.amqp.impl.AmqpReceiverImpl.LOGGER:Lio/vertx/core/logging/Logger;
            ldc "Unable to dispatch the AMQP message"
            aload 3 /* e */
            invokevirtual io.vertx.core.logging.Logger.error:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         6: .line 262
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.autoAck:Z
            ifeq 8
         7: .line 263
            aload 2 /* message */
            invokevirtual io.vertx.amqp.impl.AmqpMessageImpl.rejected:()Lio/vertx/amqp/AmqpMessage;
            pop
        end local 3 // java.lang.Exception e
         8: .line 267
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.receiver:Lio/vertx/proton/ProtonReceiver;
            iconst_1
            invokeinterface io.vertx.proton.ProtonReceiver.flow:(I)Lio/vertx/proton/ProtonReceiver;
            pop
         9: .line 268
            return
        end local 2 // io.vertx.amqp.impl.AmqpMessageImpl message
        end local 1 // io.vertx.core.Handler h
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lio/vertx/amqp/impl/AmqpReceiverImpl;
            0   10     1        h  Lio/vertx/core/Handler<Lio/vertx/amqp/AmqpMessage;>;
            0   10     2  message  Lio/vertx/amqp/impl/AmqpMessageImpl;
            5    8     3        e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.Exception
    Signature: (Lio/vertx/core/Handler<Lio/vertx/amqp/AmqpMessage;>;Lio/vertx/amqp/impl/AmqpMessageImpl;)V
    MethodParameters:
         Name  Flags
      h        
      message  

  private void scheduleBufferedMessageDelivery();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
         0: .line 273
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 274
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.buffered:Ljava/util/Queue;
            invokeinterface java.util.Queue.isEmpty:()Z
            ifne 2
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.demand:J
            lconst_0
            lcmp
            ifle 2
            iconst_1
            goto 3
      StackMap locals: io.vertx.amqp.impl.AmqpReceiverImpl top io.vertx.amqp.impl.AmqpReceiverImpl
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 1 /* schedule */
        start local 1 // boolean schedule
         4: .line 273
            aload 2
            monitorexit
         5: goto 8
        end local 1 // boolean schedule
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
        start local 1 // boolean schedule
         8: .line 277
      StackMap locals: io.vertx.amqp.impl.AmqpReceiverImpl int
      StackMap stack:
            iload 1 /* schedule */
            ifeq 10
         9: .line 278
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.connection:Lio/vertx/amqp/impl/AmqpConnectionImpl;
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/amqp/impl/AmqpReceiverImpl;)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/amqp/impl/AmqpReceiverImpl.lambda$5(Ljava/lang/Void;)V (7)
                  (Ljava/lang/Void;)V
            invokevirtual io.vertx.amqp.impl.AmqpConnectionImpl.runOnContext:(Lio/vertx/core/Handler;)V
        10: .line 301
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean schedule
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lio/vertx/amqp/impl/AmqpReceiverImpl;
            4    6     1  schedule  Z
            8   11     1  schedule  Z
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any

  public synchronized java.lang.String address();
    descriptor: ()Ljava/lang/String;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
         0: .line 305
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.address:Ljava/lang/String;
            areturn
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/amqp/impl/AmqpReceiverImpl;

  public io.vertx.amqp.AmqpConnection connection();
    descriptor: ()Lio/vertx/amqp/AmqpConnection;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
         0: .line 310
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.connection:Lio/vertx/amqp/impl/AmqpConnectionImpl;
            areturn
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/amqp/impl/AmqpReceiverImpl;

  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=3, locals=4, args_size=2
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
        start local 1 // io.vertx.core.Handler handler
         0: .line 316
            aload 1 /* handler */
            ifnonnull 3
         1: .line 317
            invokedynamic handle()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/amqp/impl/AmqpReceiverImpl.lambda$6(Lio/vertx/core/AsyncResult;)V (6)
                  (Lio/vertx/core/AsyncResult;)V
            astore 2 /* actualHandler */
        start local 2 // io.vertx.core.Handler actualHandler
         2: .line 318
            goto 4
        end local 2 // io.vertx.core.Handler actualHandler
         3: .line 319
      StackMap locals:
      StackMap stack:
            aload 1 /* handler */
            astore 2 /* actualHandler */
        start local 2 // io.vertx.core.Handler actualHandler
         4: .line 322
      StackMap locals: io.vertx.core.Handler
      StackMap stack:
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         5: .line 323
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.closed:Z
            ifeq 9
         6: .line 324
            aload 2 /* actualHandler */
            invokestatic io.vertx.core.Future.succeededFuture:()Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         7: .line 325
            aload 3
            monitorexit
         8: return
         9: .line 327
      StackMap locals: io.vertx.amqp.impl.AmqpReceiverImpl
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.closed:Z
        10: .line 322
            aload 3
            monitorexit
        11: goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: aload 3
            monitorexit
        13: athrow
        14: .line 330
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.connection:Lio/vertx/amqp/impl/AmqpConnectionImpl;
            aload 0 /* this */
            invokevirtual io.vertx.amqp.impl.AmqpConnectionImpl.unregister:(Lio/vertx/amqp/AmqpReceiver;)V
        15: .line 331
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.connection:Lio/vertx/amqp/impl/AmqpConnectionImpl;
            aload 0 /* this */
            aload 2 /* actualHandler */
            invokedynamic handle(Lio/vertx/amqp/impl/AmqpReceiverImpl;Lio/vertx/core/Handler;)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/amqp/impl/AmqpReceiverImpl.lambda$7(Lio/vertx/core/Handler;Ljava/lang/Void;)V (7)
                  (Ljava/lang/Void;)V
            invokevirtual io.vertx.amqp.impl.AmqpConnectionImpl.runWithTrampoline:(Lio/vertx/core/Handler;)V
        16: .line 351
            return
        end local 2 // io.vertx.core.Handler actualHandler
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0           this  Lio/vertx/amqp/impl/AmqpReceiverImpl;
            0   17     1        handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            2    3     2  actualHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            4   17     2  actualHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
      Exception table:
        from    to  target  type
           5     8      12  any
           9    11      12  any
          12    13      12  any
    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();
    descriptor: ()Lio/vertx/core/Future;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
         0: .line 355
            invokestatic io.vertx.core.Promise.promise:()Lio/vertx/core/Promise;
            astore 1 /* promise */
        start local 1 // io.vertx.core.Promise promise
         1: .line 356
            aload 0 /* this */
            aload 1 /* promise */
            invokevirtual io.vertx.amqp.impl.AmqpReceiverImpl.close:(Lio/vertx/core/Handler;)V
         2: .line 357
            aload 1 /* promise */
            invokeinterface io.vertx.core.Promise.future:()Lio/vertx/core/Future;
            areturn
        end local 1 // io.vertx.core.Promise promise
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lio/vertx/amqp/impl/AmqpReceiverImpl;
            1    3     1  promise  Lio/vertx/core/Promise<Ljava/lang/Void;>;
    Signature: ()Lio/vertx/core/Future<Ljava/lang/Void;>;

  private synchronized boolean isDurable();
    descriptor: ()Z
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
         0: .line 361
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.durable:Z
            ireturn
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/amqp/impl/AmqpReceiverImpl;

  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.amqp.impl.AmqpReceiverImpl.pause:()Lio/vertx/amqp/impl/AmqpReceiverImpl;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.amqp.AmqpReceiver pause();
    descriptor: ()Lio/vertx/amqp/AmqpReceiver;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.vertx.amqp.impl.AmqpReceiverImpl.pause:()Lio/vertx/amqp/impl/AmqpReceiverImpl;
            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.amqp.impl.AmqpReceiverImpl.handler:(Lio/vertx/core/Handler;)Lio/vertx/amqp/AmqpReceiver;
            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.amqp.impl.AmqpReceiverImpl.endHandler:(Lio/vertx/core/Handler;)Lio/vertx/amqp/impl/AmqpReceiverImpl;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.amqp.AmqpReceiver endHandler(io.vertx.core.Handler);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/amqp/AmqpReceiver;
    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.amqp.impl.AmqpReceiverImpl.endHandler:(Lio/vertx/core/Handler;)Lio/vertx/amqp/impl/AmqpReceiverImpl;
            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.amqp.impl.AmqpReceiverImpl.resume:()Lio/vertx/amqp/impl/AmqpReceiverImpl;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.amqp.AmqpReceiver resume();
    descriptor: ()Lio/vertx/amqp/AmqpReceiver;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.vertx.amqp.impl.AmqpReceiverImpl.resume:()Lio/vertx/amqp/impl/AmqpReceiverImpl;
            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.amqp.impl.AmqpReceiverImpl.fetch:(J)Lio/vertx/amqp/impl/AmqpReceiverImpl;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.amqp.AmqpReceiver fetch(long);
    descriptor: (J)Lio/vertx/amqp/AmqpReceiver;
    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.amqp.impl.AmqpReceiverImpl.fetch:(J)Lio/vertx/amqp/impl/AmqpReceiverImpl;
            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.amqp.impl.AmqpReceiverImpl.exceptionHandler:(Lio/vertx/core/Handler;)Lio/vertx/amqp/AmqpReceiver;
            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.amqp.impl.AmqpReceiverImpl.exceptionHandler:(Lio/vertx/core/Handler;)Lio/vertx/amqp/AmqpReceiver;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void lambda$0(io.vertx.amqp.impl.AmqpConnectionImpl, io.vertx.proton.ProtonDelivery, org.apache.qpid.proton.message.Message);
    descriptor: (Lio/vertx/amqp/impl/AmqpConnectionImpl;Lio/vertx/proton/ProtonDelivery;Lorg/apache/qpid/proton/message/Message;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
        start local 2 // io.vertx.proton.ProtonDelivery delivery
        start local 3 // org.apache.qpid.proton.message.Message message
         0: .line 88
            aload 0 /* this */
            new io.vertx.amqp.impl.AmqpMessageImpl
            dup
            aload 3 /* message */
            aload 2 /* delivery */
            aload 1
            invokespecial io.vertx.amqp.impl.AmqpMessageImpl.<init>:(Lorg/apache/qpid/proton/message/Message;Lio/vertx/proton/ProtonDelivery;Lio/vertx/amqp/impl/AmqpConnectionImpl;)V
            invokevirtual io.vertx.amqp.impl.AmqpReceiverImpl.handleMessage:(Lio/vertx/amqp/impl/AmqpMessageImpl;)V
            return
        end local 3 // org.apache.qpid.proton.message.Message message
        end local 2 // io.vertx.proton.ProtonDelivery delivery
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lio/vertx/amqp/impl/AmqpReceiverImpl;
            0    1     2  delivery  Lio/vertx/proton/ProtonDelivery;
            0    1     3   message  Lorg/apache/qpid/proton/message/Message;

  private void lambda$1(java.lang.String, io.vertx.proton.ProtonReceiver, io.vertx.core.AsyncResult);
    descriptor: (Ljava/lang/String;Lio/vertx/proton/ProtonReceiver;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
        start local 3 // io.vertx.core.AsyncResult res
         0: .line 91
            aload 0 /* this */
            aload 1
            aload 2
            aload 3 /* res */
            iconst_0
            invokevirtual io.vertx.amqp.impl.AmqpReceiverImpl.onClose:(Ljava/lang/String;Lio/vertx/proton/ProtonReceiver;Lio/vertx/core/AsyncResult;Z)V
         1: .line 92
            return
        end local 3 // io.vertx.core.AsyncResult res
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/amqp/impl/AmqpReceiverImpl;
            0    2     3   res  Lio/vertx/core/AsyncResult<Lio/vertx/proton/ProtonReceiver;>;

  private void lambda$2(java.lang.String, io.vertx.proton.ProtonReceiver, io.vertx.core.AsyncResult);
    descriptor: (Ljava/lang/String;Lio/vertx/proton/ProtonReceiver;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
        start local 3 // io.vertx.core.AsyncResult res
         0: .line 94
            aload 0 /* this */
            aload 1
            aload 2
            aload 3 /* res */
            iconst_1
            invokevirtual io.vertx.amqp.impl.AmqpReceiverImpl.onClose:(Ljava/lang/String;Lio/vertx/proton/ProtonReceiver;Lio/vertx/core/AsyncResult;Z)V
         1: .line 95
            return
        end local 3 // io.vertx.core.AsyncResult res
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/amqp/impl/AmqpReceiverImpl;
            0    2     3   res  Lio/vertx/core/AsyncResult<Lio/vertx/proton/ProtonReceiver;>;

  private void lambda$3(io.vertx.core.Handler, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
        start local 2 // io.vertx.core.AsyncResult res
         0: .line 99
            aload 2 /* res */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 3
         1: .line 100
            aload 1
            aload 2 /* res */
            invokeinterface io.vertx.core.AsyncResult.mapEmpty:()Lio/vertx/core/AsyncResult;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         2: .line 101
            goto 12
         3: .line 102
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.connection:Lio/vertx/amqp/impl/AmqpConnectionImpl;
            aload 0 /* this */
            invokevirtual io.vertx.amqp.impl.AmqpConnectionImpl.register:(Lio/vertx/amqp/impl/AmqpReceiverImpl;)V
         4: .line 103
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         5: .line 104
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.address:Ljava/lang/String;
            ifnonnull 7
         6: .line 105
            aload 0 /* this */
            aload 2 /* res */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast io.vertx.proton.ProtonReceiver
            invokeinterface io.vertx.proton.ProtonReceiver.getRemoteAddress:()Ljava/lang/String;
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.address:Ljava/lang/String;
         7: .line 103
      StackMap locals: io.vertx.amqp.impl.AmqpReceiverImpl
      StackMap stack:
            aload 3
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 3
            monitorexit
        10: athrow
        11: .line 108
      StackMap locals:
      StackMap stack:
            aload 1
            aload 0 /* this */
            invokestatic io.vertx.core.Future.succeededFuture:(Ljava/lang/Object;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        12: .line 110
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.vertx.core.AsyncResult res
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lio/vertx/amqp/impl/AmqpReceiverImpl;
            0   13     2   res  Lio/vertx/core/AsyncResult<Lio/vertx/proton/ProtonReceiver;>;
      Exception table:
        from    to  target  type
           5     8       9  any
           9    10       9  any

  private void lambda$4(int, java.lang.Void);
    descriptor: (ILjava/lang/Void;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
        start local 2 // java.lang.Void v
         0: .line 215
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.receiver:Lio/vertx/proton/ProtonReceiver;
            iload 1
            invokeinterface io.vertx.proton.ProtonReceiver.flow:(I)Lio/vertx/proton/ProtonReceiver;
            return
        end local 2 // java.lang.Void v
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/amqp/impl/AmqpReceiverImpl;
            0    1     2     v  Ljava/lang/Void;

  private void lambda$5(java.lang.Void);
    descriptor: (Ljava/lang/Void;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
        start local 1 // java.lang.Void v
         0: .line 280
            aconst_null
            astore 3 /* message */
        start local 3 // io.vertx.amqp.impl.AmqpMessageImpl message
         1: .line 282
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         2: .line 283
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.handler:Lio/vertx/core/Handler;
            astore 2 /* h */
        start local 2 // io.vertx.core.Handler h
         3: .line 284
            aload 2 /* h */
            ifnull 7
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.demand:J
            lconst_0
            lcmp
            ifle 7
         4: .line 285
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.buffered:Ljava/util/Queue;
            invokeinterface java.util.Queue.poll:()Ljava/lang/Object;
            checkcast io.vertx.amqp.impl.AmqpMessageImpl
            astore 3 /* message */
         5: .line 286
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.demand:J
            ldc 9223372036854775807
            lcmp
            ifeq 7
            aload 3 /* message */
            ifnull 7
         6: .line 287
            aload 0 /* this */
            dup
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.demand:J
            lconst_1
            lsub
            putfield io.vertx.amqp.impl.AmqpReceiverImpl.demand:J
         7: .line 282
      StackMap locals: io.vertx.core.Handler io.vertx.amqp.impl.AmqpMessageImpl io.vertx.amqp.impl.AmqpReceiverImpl
      StackMap stack:
            aload 4
            monitorexit
         8: goto 11
        end local 2 // io.vertx.core.Handler h
      StackMap locals: io.vertx.amqp.impl.AmqpReceiverImpl java.lang.Void top io.vertx.amqp.impl.AmqpMessageImpl io.vertx.amqp.impl.AmqpReceiverImpl
      StackMap stack: java.lang.Throwable
         9: aload 4
            monitorexit
        10: athrow
        start local 2 // io.vertx.core.Handler h
        11: .line 292
      StackMap locals: io.vertx.amqp.impl.AmqpReceiverImpl java.lang.Void io.vertx.core.Handler io.vertx.amqp.impl.AmqpMessageImpl
      StackMap stack:
            aload 3 /* message */
            ifnull 14
        12: .line 294
            aload 0 /* this */
            aload 2 /* h */
            aload 3 /* message */
            invokevirtual io.vertx.amqp.impl.AmqpReceiverImpl.deliverMessageToHandler:(Lio/vertx/core/Handler;Lio/vertx/amqp/impl/AmqpMessageImpl;)V
        13: .line 297
            aload 0 /* this */
            invokevirtual io.vertx.amqp.impl.AmqpReceiverImpl.scheduleBufferedMessageDelivery:()V
        end local 3 // io.vertx.amqp.impl.AmqpMessageImpl message
        end local 2 // io.vertx.core.Handler h
        14: .line 299
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Void v
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Lio/vertx/amqp/impl/AmqpReceiverImpl;
            0   15     1        v  Ljava/lang/Void;
            3    9     2        h  Lio/vertx/core/Handler<Lio/vertx/amqp/AmqpMessage;>;
           11   14     2        h  Lio/vertx/core/Handler<Lio/vertx/amqp/AmqpMessage;>;
            1   14     3  message  Lio/vertx/amqp/impl/AmqpMessageImpl;
      Exception table:
        from    to  target  type
           2     8       9  any
           9    10       9  any

  private static void lambda$6(io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // io.vertx.core.AsyncResult x
         0: .line 317
            return
        end local 0 // io.vertx.core.AsyncResult x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     x  Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;

  private void lambda$7(io.vertx.core.Handler, java.lang.Void);
    descriptor: (Lio/vertx/core/Handler;Ljava/lang/Void;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
        start local 2 // java.lang.Void x
         0: .line 332
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.receiver:Lio/vertx/proton/ProtonReceiver;
            invokeinterface io.vertx.proton.ProtonReceiver.isOpen:()Z
            ifeq 12
         1: .line 334
            aload 0 /* this */
            invokevirtual io.vertx.amqp.impl.AmqpReceiverImpl.isDurable:()Z
            ifeq 5
         2: .line 335
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.receiver:Lio/vertx/proton/ProtonReceiver;
            aload 1
            invokedynamic handle(Lio/vertx/core/Handler;)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/amqp/impl/AmqpReceiverImpl.lambda$8(Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V (6)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.proton.ProtonReceiver.detachHandler:(Lio/vertx/core/Handler;)Lio/vertx/proton/ProtonLink;
            checkcast io.vertx.proton.ProtonReceiver
         3: .line 336
            invokeinterface io.vertx.proton.ProtonReceiver.detach:()Lio/vertx/proton/ProtonLink;
            pop
         4: .line 337
            goto 13
         5: .line 338
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpReceiverImpl.receiver:Lio/vertx/proton/ProtonReceiver;
         6: .line 339
            aload 1
            invokedynamic handle(Lio/vertx/core/Handler;)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/amqp/impl/AmqpReceiverImpl.lambda$9(Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V (6)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.proton.ProtonReceiver.closeHandler:(Lio/vertx/core/Handler;)Lio/vertx/proton/ProtonLink;
            checkcast io.vertx.proton.ProtonReceiver
         7: .line 340
            invokeinterface io.vertx.proton.ProtonReceiver.close:()Lio/vertx/proton/ProtonLink;
            pop
         8: .line 342
            goto 13
      StackMap locals:
      StackMap stack: java.lang.Exception
         9: astore 3 /* e */
        start local 3 // java.lang.Exception e
        10: .line 344
            aload 1
            aload 3 /* e */
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/Throwable;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 3 // java.lang.Exception e
        11: .line 346
            goto 13
        12: .line 347
      StackMap locals:
      StackMap stack:
            aload 1
            invokestatic io.vertx.core.Future.succeededFuture:()Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        13: .line 349
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Void x
        end local 0 // io.vertx.amqp.impl.AmqpReceiverImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lio/vertx/amqp/impl/AmqpReceiverImpl;
            0   14     2     x  Ljava/lang/Void;
           10   11     3     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     8       9  Class java.lang.Exception

  private static void lambda$8(io.vertx.core.Handler, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // io.vertx.core.AsyncResult done
         0: .line 335
            aload 0
            aload 1 /* done */
            invokeinterface io.vertx.core.AsyncResult.mapEmpty:()Lio/vertx/core/AsyncResult;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
            return
        end local 1 // io.vertx.core.AsyncResult done
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1  done  Lio/vertx/core/AsyncResult<Lio/vertx/proton/ProtonReceiver;>;

  private static void lambda$9(io.vertx.core.Handler, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // io.vertx.core.AsyncResult done
         0: .line 339
            aload 0
            aload 1 /* done */
            invokeinterface io.vertx.core.AsyncResult.mapEmpty:()Lio/vertx/core/AsyncResult;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
            return
        end local 1 // io.vertx.core.AsyncResult done
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1  done  Lio/vertx/core/AsyncResult<Lio/vertx/proton/ProtonReceiver;>;
}
SourceFile: "AmqpReceiverImpl.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles