public class io.vertx.amqp.impl.AmqpSenderImpl implements io.vertx.amqp.AmqpSender
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.amqp.impl.AmqpSenderImpl
  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.ProtonSender sender;
    descriptor: Lio/vertx/proton/ProtonSender;
    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 boolean closed;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

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

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

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

  private static volatile int[] $SWITCH_TABLE$org$apache$qpid$proton$amqp$transport$DeliveryState$DeliveryStateType;
    descriptor: [I
    flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC

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

  private void <init>(io.vertx.proton.ProtonSender, io.vertx.amqp.impl.AmqpConnectionImpl, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.amqp.AmqpSender>>);
    descriptor: (Lio/vertx/proton/ProtonSender;Lio/vertx/amqp/impl/AmqpConnectionImpl;Lio/vertx/core/Handler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
        start local 1 // io.vertx.proton.ProtonSender sender
        start local 2 // io.vertx.amqp.impl.AmqpConnectionImpl connection
        start local 3 // io.vertx.core.Handler completionHandler
         0: .line 39
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 37
            aload 0 /* this */
            lconst_0
            putfield io.vertx.amqp.impl.AmqpSenderImpl.remoteCredit:J
         2: .line 41
            aload 0 /* this */
            aload 1 /* sender */
            putfield io.vertx.amqp.impl.AmqpSenderImpl.sender:Lio/vertx/proton/ProtonSender;
         3: .line 42
            aload 0 /* this */
            aload 2 /* connection */
            putfield io.vertx.amqp.impl.AmqpSenderImpl.connection:Lio/vertx/amqp/impl/AmqpConnectionImpl;
         4: .line 44
            aload 1 /* sender */
         5: .line 45
            aload 0 /* this */
            aload 1 /* sender */
            invokedynamic handle(Lio/vertx/amqp/impl/AmqpSenderImpl;Lio/vertx/proton/ProtonSender;)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/AmqpSenderImpl.lambda$0(Lio/vertx/proton/ProtonSender;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.proton.ProtonSender.closeHandler:(Lio/vertx/core/Handler;)Lio/vertx/proton/ProtonLink;
            checkcast io.vertx.proton.ProtonSender
         6: .line 46
            aload 0 /* this */
            aload 1 /* sender */
            invokedynamic handle(Lio/vertx/amqp/impl/AmqpSenderImpl;Lio/vertx/proton/ProtonSender;)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/AmqpSenderImpl.lambda$1(Lio/vertx/proton/ProtonSender;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.proton.ProtonSender.detachHandler:(Lio/vertx/core/Handler;)Lio/vertx/proton/ProtonLink;
            pop
         7: .line 48
            aload 1 /* sender */
            aload 0 /* this */
            aload 1 /* sender */
            invokedynamic handle(Lio/vertx/amqp/impl/AmqpSenderImpl;Lio/vertx/proton/ProtonSender;)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/AmqpSenderImpl.lambda$2(Lio/vertx/proton/ProtonSender;Lio/vertx/proton/ProtonSender;)V (7)
                  (Lio/vertx/proton/ProtonSender;)V
            invokeinterface io.vertx.proton.ProtonSender.sendQueueDrainHandler:(Lio/vertx/core/Handler;)Lio/vertx/proton/ProtonSender;
            pop
         8: .line 65
            aload 1 /* sender */
            aload 0 /* this */
            aload 3 /* completionHandler */
            aload 2 /* connection */
            invokedynamic handle(Lio/vertx/amqp/impl/AmqpSenderImpl;Lio/vertx/core/Handler;Lio/vertx/amqp/impl/AmqpConnectionImpl;)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/AmqpSenderImpl.lambda$3(Lio/vertx/core/Handler;Lio/vertx/amqp/impl/AmqpConnectionImpl;Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.proton.ProtonSender.openHandler:(Lio/vertx/core/Handler;)Lio/vertx/proton/ProtonLink;
            pop
         9: .line 74
            aload 1 /* sender */
            invokeinterface io.vertx.proton.ProtonSender.open:()Lio/vertx/proton/ProtonLink;
            pop
        10: .line 75
            return
        end local 3 // io.vertx.core.Handler completionHandler
        end local 2 // io.vertx.amqp.impl.AmqpConnectionImpl connection
        end local 1 // io.vertx.proton.ProtonSender sender
        end local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   11     0               this  Lio/vertx/amqp/impl/AmqpSenderImpl;
            0   11     1             sender  Lio/vertx/proton/ProtonSender;
            0   11     2         connection  Lio/vertx/amqp/impl/AmqpConnectionImpl;
            0   11     3  completionHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/amqp/AmqpSender;>;>;
    Signature: (Lio/vertx/proton/ProtonSender;Lio/vertx/amqp/impl/AmqpConnectionImpl;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/amqp/AmqpSender;>;>;)V
    MethodParameters:
                   Name  Flags
      sender             
      connection         
      completionHandler  

  static void create(io.vertx.proton.ProtonSender, io.vertx.amqp.impl.AmqpConnectionImpl, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.amqp.AmqpSender>>);
    descriptor: (Lio/vertx/proton/ProtonSender;Lio/vertx/amqp/impl/AmqpConnectionImpl;Lio/vertx/core/Handler;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.proton.ProtonSender sender
        start local 1 // io.vertx.amqp.impl.AmqpConnectionImpl connection
        start local 2 // io.vertx.core.Handler completionHandler
         0: .line 87
            new io.vertx.amqp.impl.AmqpSenderImpl
            aload 0 /* sender */
            aload 1 /* connection */
            aload 2 /* completionHandler */
            invokespecial io.vertx.amqp.impl.AmqpSenderImpl.<init>:(Lio/vertx/proton/ProtonSender;Lio/vertx/amqp/impl/AmqpConnectionImpl;Lio/vertx/core/Handler;)V
         1: .line 88
            return
        end local 2 // io.vertx.core.Handler completionHandler
        end local 1 // io.vertx.amqp.impl.AmqpConnectionImpl connection
        end local 0 // io.vertx.proton.ProtonSender sender
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0             sender  Lio/vertx/proton/ProtonSender;
            0    2     1         connection  Lio/vertx/amqp/impl/AmqpConnectionImpl;
            0    2     2  completionHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/amqp/AmqpSender;>;>;
    Signature: (Lio/vertx/proton/ProtonSender;Lio/vertx/amqp/impl/AmqpConnectionImpl;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/amqp/AmqpSender;>;>;)V
    MethodParameters:
                   Name  Flags
      sender             
      connection         
      completionHandler  

  private void onClose(io.vertx.proton.ProtonSender, io.vertx.core.AsyncResult<io.vertx.proton.ProtonSender>, );
    descriptor: (Lio/vertx/proton/ProtonSender;Lio/vertx/core/AsyncResult;Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
        start local 1 // io.vertx.proton.ProtonSender sender
        start local 2 // io.vertx.core.AsyncResult res
        start local 3 // boolean detach
         0: .line 91
            aconst_null
            astore 4 /* eh */
        start local 4 // io.vertx.core.Handler eh
         1: .line 92
            iconst_0
            istore 5 /* closeSender */
        start local 5 // boolean closeSender
         2: .line 94
            aload 0 /* this */
            dup
            astore 6
            monitorenter
         3: .line 95
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpSenderImpl.closed:Z
            ifne 5
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpSenderImpl.exceptionHandler:Lio/vertx/core/Handler;
            ifnull 5
         4: .line 96
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpSenderImpl.exceptionHandler:Lio/vertx/core/Handler;
            astore 4 /* eh */
         5: .line 99
      StackMap locals: io.vertx.core.Handler int io.vertx.amqp.impl.AmqpSenderImpl
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpSenderImpl.closed:Z
            ifne 8
         6: .line 100
            aload 0 /* this */
            iconst_1
            putfield io.vertx.amqp.impl.AmqpSenderImpl.closed:Z
         7: .line 101
            iconst_1
            istore 5 /* closeSender */
         8: .line 94
      StackMap locals:
      StackMap stack:
            aload 6
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 6
            monitorexit
        11: athrow
        12: .line 105
      StackMap locals:
      StackMap stack:
            aload 4 /* eh */
            ifnull 17
        13: .line 106
            aload 2 /* res */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 16
        14: .line 107
            aload 4 /* eh */
            new java.lang.Exception
            dup
            ldc "Sender closed remotely"
            invokespecial java.lang.Exception.<init>:(Ljava/lang/String;)V
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        15: .line 108
            goto 17
        16: .line 109
      StackMap locals:
      StackMap stack:
            aload 4 /* eh */
            new java.lang.Exception
            dup
            ldc "Sender closed remotely with error"
            aload 2 /* res */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokespecial java.lang.Exception.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        17: .line 113
      StackMap locals:
      StackMap stack:
            iload 5 /* closeSender */
            ifeq 22
        18: .line 114
            iload 3 /* detach */
            ifeq 21
        19: .line 115
            aload 1 /* sender */
            invokeinterface io.vertx.proton.ProtonSender.detach:()Lio/vertx/proton/ProtonLink;
            pop
        20: .line 116
            goto 22
        21: .line 117
      StackMap locals:
      StackMap stack:
            aload 1 /* sender */
            invokeinterface io.vertx.proton.ProtonSender.close:()Lio/vertx/proton/ProtonLink;
            pop
        22: .line 120
      StackMap locals:
      StackMap stack:
            return
        end local 5 // boolean closeSender
        end local 4 // io.vertx.core.Handler eh
        end local 3 // boolean detach
        end local 2 // io.vertx.core.AsyncResult res
        end local 1 // io.vertx.proton.ProtonSender sender
        end local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   23     0         this  Lio/vertx/amqp/impl/AmqpSenderImpl;
            0   23     1       sender  Lio/vertx/proton/ProtonSender;
            0   23     2          res  Lio/vertx/core/AsyncResult<Lio/vertx/proton/ProtonSender;>;
            0   23     3       detach  Z
            1   23     4           eh  Lio/vertx/core/Handler<Ljava/lang/Throwable;>;
            2   23     5  closeSender  Z
      Exception table:
        from    to  target  type
           3     9      10  any
          10    11      10  any
    Signature: (Lio/vertx/proton/ProtonSender;Lio/vertx/core/AsyncResult<Lio/vertx/proton/ProtonSender;>;Z)V
    MethodParameters:
        Name  Flags
      sender  
      res     
      detach  

  public synchronized boolean writeQueueFull();
    descriptor: ()Z
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
         0: .line 124
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpSenderImpl.remoteCredit:J
            lconst_0
            lcmp
            ifgt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/amqp/impl/AmqpSenderImpl;

  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.AmqpSenderImpl this
         0: .line 129
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpSenderImpl.connection:Lio/vertx/amqp/impl/AmqpConnectionImpl;
            areturn
        end local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/amqp/impl/AmqpSenderImpl;

  public io.vertx.amqp.AmqpSender send(io.vertx.amqp.AmqpMessage);
    descriptor: (Lio/vertx/amqp/AmqpMessage;)Lio/vertx/amqp/AmqpSender;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
        start local 1 // io.vertx.amqp.AmqpMessage message
         0: .line 134
            aload 0 /* this */
            aload 1 /* message */
            aconst_null
            invokevirtual io.vertx.amqp.impl.AmqpSenderImpl.doSend:(Lio/vertx/amqp/AmqpMessage;Lio/vertx/core/Handler;)Lio/vertx/amqp/AmqpSender;
            areturn
        end local 1 // io.vertx.amqp.AmqpMessage message
        end local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/vertx/amqp/impl/AmqpSenderImpl;
            0    1     1  message  Lio/vertx/amqp/AmqpMessage;
    MethodParameters:
         Name  Flags
      message  

  private io.vertx.amqp.AmqpSender doSend(io.vertx.amqp.AmqpMessage, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/amqp/AmqpMessage;Lio/vertx/core/Handler;)Lio/vertx/amqp/AmqpSender;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
        start local 1 // io.vertx.amqp.AmqpMessage message
        start local 2 // io.vertx.core.Handler acknowledgmentHandler
         0: .line 139
            aload 1 /* message */
            invokeinterface io.vertx.amqp.AmqpMessage.address:()Ljava/lang/String;
            ifnonnull 3
         1: .line 140
            aload 1 /* message */
            invokestatic io.vertx.amqp.AmqpMessage.create:(Lio/vertx/amqp/AmqpMessage;)Lio/vertx/amqp/AmqpMessageBuilder;
            aload 0 /* this */
            invokevirtual io.vertx.amqp.impl.AmqpSenderImpl.address:()Ljava/lang/String;
            invokeinterface io.vertx.amqp.AmqpMessageBuilder.address:(Ljava/lang/String;)Lio/vertx/amqp/AmqpMessageBuilder;
            invokeinterface io.vertx.amqp.AmqpMessageBuilder.build:()Lio/vertx/amqp/AmqpMessage;
            astore 3 /* updated */
        start local 3 // io.vertx.amqp.AmqpMessage updated
         2: .line 141
            goto 4
        end local 3 // io.vertx.amqp.AmqpMessage updated
         3: .line 142
      StackMap locals:
      StackMap stack:
            aload 1 /* message */
            astore 3 /* updated */
        start local 3 // io.vertx.amqp.AmqpMessage updated
         4: .line 145
      StackMap locals: io.vertx.amqp.AmqpMessage
      StackMap stack:
            aload 2 /* acknowledgmentHandler */
            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/AmqpSenderImpl.lambda$4(Lio/vertx/core/Handler;Lio/vertx/proton/ProtonDelivery;)V (6)
                  (Lio/vertx/proton/ProtonDelivery;)V
            astore 4 /* ack */
        start local 4 // io.vertx.core.Handler ack
         5: .line 173
            aload 0 /* this */
            dup
            astore 5
            monitorenter
         6: .line 177
            aload 0 /* this */
            dup
            getfield io.vertx.amqp.impl.AmqpSenderImpl.remoteCredit:J
            lconst_1
            lsub
            putfield io.vertx.amqp.impl.AmqpSenderImpl.remoteCredit:J
         7: .line 173
            aload 5
            monitorexit
         8: goto 11
      StackMap locals: io.vertx.amqp.impl.AmqpSenderImpl io.vertx.amqp.AmqpMessage io.vertx.core.Handler io.vertx.amqp.AmqpMessage io.vertx.core.Handler io.vertx.amqp.impl.AmqpSenderImpl
      StackMap stack: java.lang.Throwable
         9: aload 5
            monitorexit
        10: athrow
        11: .line 180
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpSenderImpl.connection:Lio/vertx/amqp/impl/AmqpConnectionImpl;
            aload 0 /* this */
            aload 3 /* updated */
            aload 4 /* ack */
            invokedynamic handle(Lio/vertx/amqp/impl/AmqpSenderImpl;Lio/vertx/amqp/AmqpMessage;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/AmqpSenderImpl.lambda$6(Lio/vertx/amqp/AmqpMessage;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
        12: .line 191
            aload 0 /* this */
            areturn
        end local 4 // io.vertx.core.Handler ack
        end local 3 // io.vertx.amqp.AmqpMessage updated
        end local 2 // io.vertx.core.Handler acknowledgmentHandler
        end local 1 // io.vertx.amqp.AmqpMessage message
        end local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   13     0                   this  Lio/vertx/amqp/impl/AmqpSenderImpl;
            0   13     1                message  Lio/vertx/amqp/AmqpMessage;
            0   13     2  acknowledgmentHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            2    3     3                updated  Lio/vertx/amqp/AmqpMessage;
            4   13     3                updated  Lio/vertx/amqp/AmqpMessage;
            5   13     4                    ack  Lio/vertx/core/Handler<Lio/vertx/proton/ProtonDelivery;>;
      Exception table:
        from    to  target  type
           6     8       9  any
           9    10       9  any
    Signature: (Lio/vertx/amqp/AmqpMessage;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)Lio/vertx/amqp/AmqpSender;
    MethodParameters:
                       Name  Flags
      message                
      acknowledgmentHandler  

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

  public io.vertx.amqp.AmqpSender write(io.vertx.amqp.AmqpMessage);
    descriptor: (Lio/vertx/amqp/AmqpMessage;)Lio/vertx/amqp/AmqpSender;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
        start local 1 // io.vertx.amqp.AmqpMessage data
         0: .line 202
            aload 0 /* this */
            aload 1 /* data */
            aconst_null
            invokevirtual io.vertx.amqp.impl.AmqpSenderImpl.doSend:(Lio/vertx/amqp/AmqpMessage;Lio/vertx/core/Handler;)Lio/vertx/amqp/AmqpSender;
            areturn
        end local 1 // io.vertx.amqp.AmqpMessage data
        end local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/amqp/impl/AmqpSenderImpl;
            0    1     1  data  Lio/vertx/amqp/AmqpMessage;
    MethodParameters:
      Name  Flags
      data  

  public io.vertx.amqp.AmqpSender write(io.vertx.amqp.AmqpMessage, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/amqp/AmqpMessage;Lio/vertx/core/Handler;)Lio/vertx/amqp/AmqpSender;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
        start local 1 // io.vertx.amqp.AmqpMessage data
        start local 2 // io.vertx.core.Handler handler
         0: .line 207
            aload 0 /* this */
            aload 1 /* data */
            aload 2 /* handler */
            invokevirtual io.vertx.amqp.impl.AmqpSenderImpl.doSend:(Lio/vertx/amqp/AmqpMessage;Lio/vertx/core/Handler;)Lio/vertx/amqp/AmqpSender;
            areturn
        end local 2 // io.vertx.core.Handler handler
        end local 1 // io.vertx.amqp.AmqpMessage data
        end local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/vertx/amqp/impl/AmqpSenderImpl;
            0    1     1     data  Lio/vertx/amqp/AmqpMessage;
            0    1     2  handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
    Signature: (Lio/vertx/amqp/AmqpMessage;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)Lio/vertx/amqp/AmqpSender;
    MethodParameters:
         Name  Flags
      data     
      handler  

  public io.vertx.amqp.AmqpSender setWriteQueueMaxSize(int);
    descriptor: (I)Lio/vertx/amqp/AmqpSender;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
        start local 1 // int maxSize
         0: .line 213
            aload 0 /* this */
            areturn
        end local 1 // int maxSize
        end local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/vertx/amqp/impl/AmqpSenderImpl;
            0    1     1  maxSize  I
    MethodParameters:
         Name  Flags
      maxSize  

  public void end();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
         0: .line 218
            aload 0 /* this */
            aconst_null
            invokevirtual io.vertx.amqp.impl.AmqpSenderImpl.close:(Lio/vertx/core/Handler;)V
         1: .line 219
            return
        end local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/amqp/impl/AmqpSenderImpl;

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

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

  public io.vertx.amqp.AmqpSender sendWithAck(io.vertx.amqp.AmqpMessage, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/amqp/AmqpMessage;Lio/vertx/core/Handler;)Lio/vertx/amqp/AmqpSender;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
        start local 1 // io.vertx.amqp.AmqpMessage message
        start local 2 // io.vertx.core.Handler acknowledgementHandler
         0: .line 234
            aload 0 /* this */
            aload 1 /* message */
            aload 2 /* acknowledgementHandler */
            invokevirtual io.vertx.amqp.impl.AmqpSenderImpl.doSend:(Lio/vertx/amqp/AmqpMessage;Lio/vertx/core/Handler;)Lio/vertx/amqp/AmqpSender;
            areturn
        end local 2 // io.vertx.core.Handler acknowledgementHandler
        end local 1 // io.vertx.amqp.AmqpMessage message
        end local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    1     0                    this  Lio/vertx/amqp/impl/AmqpSenderImpl;
            0    1     1                 message  Lio/vertx/amqp/AmqpMessage;
            0    1     2  acknowledgementHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
    Signature: (Lio/vertx/amqp/AmqpMessage;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)Lio/vertx/amqp/AmqpSender;
    MethodParameters:
                        Name  Flags
      message                 
      acknowledgementHandler  

  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.AmqpSenderImpl this
        start local 1 // io.vertx.core.Handler handler
         0: .line 240
            aload 1 /* handler */
            ifnonnull 3
         1: .line 241
            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/AmqpSenderImpl.lambda$7(Lio/vertx/core/AsyncResult;)V (6)
                  (Lio/vertx/core/AsyncResult;)V
            astore 2 /* actualHandler */
        start local 2 // io.vertx.core.Handler actualHandler
         2: .line 242
            goto 4
        end local 2 // io.vertx.core.Handler actualHandler
         3: .line 243
      StackMap locals:
      StackMap stack:
            aload 1 /* handler */
            astore 2 /* actualHandler */
        start local 2 // io.vertx.core.Handler actualHandler
         4: .line 246
      StackMap locals: io.vertx.core.Handler
      StackMap stack:
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         5: .line 247
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpSenderImpl.closed:Z
            ifeq 9
         6: .line 248
            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 249
            aload 3
            monitorexit
         8: return
         9: .line 251
      StackMap locals: io.vertx.amqp.impl.AmqpSenderImpl
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield io.vertx.amqp.impl.AmqpSenderImpl.closed:Z
        10: .line 246
            aload 3
            monitorexit
        11: goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: aload 3
            monitorexit
        13: athrow
        14: .line 254
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpSenderImpl.connection:Lio/vertx/amqp/impl/AmqpConnectionImpl;
            aload 0 /* this */
            invokevirtual io.vertx.amqp.impl.AmqpConnectionImpl.unregister:(Lio/vertx/amqp/AmqpSender;)V
        15: .line 255
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpSenderImpl.connection:Lio/vertx/amqp/impl/AmqpConnectionImpl;
            aload 0 /* this */
            aload 2 /* actualHandler */
            invokedynamic handle(Lio/vertx/amqp/impl/AmqpSenderImpl;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/AmqpSenderImpl.lambda$8(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 269
            return
        end local 2 // io.vertx.core.Handler actualHandler
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0           this  Lio/vertx/amqp/impl/AmqpSenderImpl;
            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 java.lang.String address();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
         0: .line 273
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpSenderImpl.sender:Lio/vertx/proton/ProtonSender;
            invokeinterface io.vertx.proton.ProtonSender.getRemoteAddress:()Ljava/lang/String;
            areturn
        end local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/amqp/impl/AmqpSenderImpl;

  public io.vertx.core.streams.WriteStream write(java.lang.Object, io.vertx.core.Handler);
    descriptor: (Ljava/lang/Object;Lio/vertx/core/Handler;)Lio/vertx/core/streams/WriteStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=3, locals=3, args_size=3
         0: .line 1
            aload 0
            aload 1
            checkcast io.vertx.amqp.AmqpMessage
            aload 2
            invokevirtual io.vertx.amqp.impl.AmqpSenderImpl.write:(Lio/vertx/amqp/AmqpMessage;Lio/vertx/core/Handler;)Lio/vertx/amqp/AmqpSender;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.streams.WriteStream write(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lio/vertx/core/streams/WriteStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast io.vertx.amqp.AmqpMessage
            invokevirtual io.vertx.amqp.impl.AmqpSenderImpl.write:(Lio/vertx/amqp/AmqpMessage;)Lio/vertx/amqp/AmqpSender;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.streams.WriteStream setWriteQueueMaxSize(int);
    descriptor: (I)Lio/vertx/core/streams/WriteStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            iload 1
            invokevirtual io.vertx.amqp.impl.AmqpSenderImpl.setWriteQueueMaxSize:(I)Lio/vertx/amqp/AmqpSender;
            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.AmqpSenderImpl.exceptionHandler:(Lio/vertx/core/Handler;)Lio/vertx/amqp/AmqpSender;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

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

  static int[] $SWITCH_TABLE$org$apache$qpid$proton$amqp$transport$DeliveryState$DeliveryStateType();
    descriptor: ()[I
    flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=0
         0: .line 30
            getstatic io.vertx.amqp.impl.AmqpSenderImpl.$SWITCH_TABLE$org$apache$qpid$proton$amqp$transport$DeliveryState$DeliveryStateType:[I
            dup
            ifnull 1
            areturn
      StackMap locals:
      StackMap stack: int[]
         1: pop
            invokestatic org.apache.qpid.proton.amqp.transport.DeliveryState$DeliveryStateType.values:()[Lorg/apache/qpid/proton/amqp/transport/DeliveryState$DeliveryStateType;
            arraylength
            newarray 10
            astore 0
         2: aload 0
            getstatic org.apache.qpid.proton.amqp.transport.DeliveryState$DeliveryStateType.Accepted:Lorg/apache/qpid/proton/amqp/transport/DeliveryState$DeliveryStateType;
            invokevirtual org.apache.qpid.proton.amqp.transport.DeliveryState$DeliveryStateType.ordinal:()I
            iconst_1
            iastore
         3: goto 5
      StackMap locals: int[]
      StackMap stack: java.lang.NoSuchFieldError
         4: pop
      StackMap locals:
      StackMap stack:
         5: aload 0
            getstatic org.apache.qpid.proton.amqp.transport.DeliveryState$DeliveryStateType.Declared:Lorg/apache/qpid/proton/amqp/transport/DeliveryState$DeliveryStateType;
            invokevirtual org.apache.qpid.proton.amqp.transport.DeliveryState$DeliveryStateType.ordinal:()I
            iconst_2
            iastore
         6: goto 8
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
         7: pop
      StackMap locals:
      StackMap stack:
         8: aload 0
            getstatic org.apache.qpid.proton.amqp.transport.DeliveryState$DeliveryStateType.Modified:Lorg/apache/qpid/proton/amqp/transport/DeliveryState$DeliveryStateType;
            invokevirtual org.apache.qpid.proton.amqp.transport.DeliveryState$DeliveryStateType.ordinal:()I
            iconst_3
            iastore
         9: goto 11
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        10: pop
      StackMap locals:
      StackMap stack:
        11: aload 0
            getstatic org.apache.qpid.proton.amqp.transport.DeliveryState$DeliveryStateType.Received:Lorg/apache/qpid/proton/amqp/transport/DeliveryState$DeliveryStateType;
            invokevirtual org.apache.qpid.proton.amqp.transport.DeliveryState$DeliveryStateType.ordinal:()I
            iconst_4
            iastore
        12: goto 14
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        13: pop
      StackMap locals:
      StackMap stack:
        14: aload 0
            getstatic org.apache.qpid.proton.amqp.transport.DeliveryState$DeliveryStateType.Rejected:Lorg/apache/qpid/proton/amqp/transport/DeliveryState$DeliveryStateType;
            invokevirtual org.apache.qpid.proton.amqp.transport.DeliveryState$DeliveryStateType.ordinal:()I
            iconst_5
            iastore
        15: goto 17
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        16: pop
      StackMap locals:
      StackMap stack:
        17: aload 0
            getstatic org.apache.qpid.proton.amqp.transport.DeliveryState$DeliveryStateType.Released:Lorg/apache/qpid/proton/amqp/transport/DeliveryState$DeliveryStateType;
            invokevirtual org.apache.qpid.proton.amqp.transport.DeliveryState$DeliveryStateType.ordinal:()I
            bipush 6
            iastore
        18: goto 20
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        19: pop
      StackMap locals:
      StackMap stack:
        20: aload 0
            getstatic org.apache.qpid.proton.amqp.transport.DeliveryState$DeliveryStateType.Transactional:Lorg/apache/qpid/proton/amqp/transport/DeliveryState$DeliveryStateType;
            invokevirtual org.apache.qpid.proton.amqp.transport.DeliveryState$DeliveryStateType.ordinal:()I
            bipush 7
            iastore
        21: goto 23
      StackMap locals:
      StackMap stack: java.lang.NoSuchFieldError
        22: pop
      StackMap locals:
      StackMap stack:
        23: aload 0
            dup
            putstatic io.vertx.amqp.impl.AmqpSenderImpl.$SWITCH_TABLE$org$apache$qpid$proton$amqp$transport$DeliveryState$DeliveryStateType:[I
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.NoSuchFieldError
           5     6       7  Class java.lang.NoSuchFieldError
           8     9      10  Class java.lang.NoSuchFieldError
          11    12      13  Class java.lang.NoSuchFieldError
          14    15      16  Class java.lang.NoSuchFieldError
          17    18      19  Class java.lang.NoSuchFieldError
          20    21      22  Class java.lang.NoSuchFieldError

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

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

  private void lambda$2(io.vertx.proton.ProtonSender, io.vertx.proton.ProtonSender);
    descriptor: (Lio/vertx/proton/ProtonSender;Lio/vertx/proton/ProtonSender;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
        start local 2 // io.vertx.proton.ProtonSender s
         0: .line 49
            aconst_null
            astore 3 /* dh */
        start local 3 // io.vertx.core.Handler dh
         1: .line 50
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         2: .line 52
            aload 0 /* this */
            aload 1
            checkcast io.vertx.proton.impl.ProtonSenderImpl
            invokevirtual io.vertx.proton.impl.ProtonSenderImpl.getRemoteCredit:()I
            i2l
            putfield io.vertx.amqp.impl.AmqpSenderImpl.remoteCredit:J
         3: .line 55
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpSenderImpl.drainHandler:Lio/vertx/core/Handler;
            ifnull 5
         4: .line 56
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpSenderImpl.drainHandler:Lio/vertx/core/Handler;
            astore 3 /* dh */
         5: .line 50
      StackMap locals: io.vertx.core.Handler io.vertx.amqp.impl.AmqpSenderImpl
      StackMap stack:
            aload 4
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 4
            monitorexit
         8: athrow
         9: .line 60
      StackMap locals:
      StackMap stack:
            aload 3 /* dh */
            ifnull 11
        10: .line 61
            aload 3 /* dh */
            aconst_null
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 3 // io.vertx.core.Handler dh
        11: .line 63
      StackMap locals:
      StackMap stack:
            return
        end local 2 // io.vertx.proton.ProtonSender s
        end local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lio/vertx/amqp/impl/AmqpSenderImpl;
            0   12     2     s  Lio/vertx/proton/ProtonSender;
            1   11     3    dh  Lio/vertx/core/Handler<Ljava/lang/Void;>;
      Exception table:
        from    to  target  type
           2     6       7  any
           7     8       7  any

  private void lambda$3(io.vertx.core.Handler, io.vertx.amqp.impl.AmqpConnectionImpl, io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/Handler;Lio/vertx/amqp/impl/AmqpConnectionImpl;Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
        start local 3 // io.vertx.core.AsyncResult done
         0: .line 66
            aload 3 /* done */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 3
         1: .line 67
            aload 1
            aload 3 /* done */
            invokeinterface io.vertx.core.AsyncResult.mapEmpty:()Lio/vertx/core/AsyncResult;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         2: .line 68
            goto 5
         3: .line 69
      StackMap locals:
      StackMap stack:
            aload 2
            aload 0 /* this */
            invokevirtual io.vertx.amqp.impl.AmqpConnectionImpl.register:(Lio/vertx/amqp/impl/AmqpSenderImpl;)V
         4: .line 70
            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
         5: .line 72
      StackMap locals:
      StackMap stack:
            return
        end local 3 // io.vertx.core.AsyncResult done
        end local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lio/vertx/amqp/impl/AmqpSenderImpl;
            0    6     3  done  Lio/vertx/core/AsyncResult<Lio/vertx/proton/ProtonSender;>;

  private static void lambda$4(io.vertx.core.Handler, io.vertx.proton.ProtonDelivery);
    descriptor: (Lio/vertx/core/Handler;Lio/vertx/proton/ProtonDelivery;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=2
        start local 1 // io.vertx.proton.ProtonDelivery delivery
         0: .line 146
            aload 0
            astore 2 /* handler */
        start local 2 // io.vertx.core.Handler handler
         1: .line 147
            aload 0
            ifnonnull 3
         2: .line 148
            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/AmqpSenderImpl.lambda$5(Lio/vertx/core/AsyncResult;)V (6)
                  (Lio/vertx/core/AsyncResult;)V
            astore 2 /* handler */
         3: .line 155
      StackMap locals: io.vertx.core.Handler
      StackMap stack:
            invokestatic io.vertx.amqp.impl.AmqpSenderImpl.$SWITCH_TABLE$org$apache$qpid$proton$amqp$transport$DeliveryState$DeliveryStateType:()[I
            aload 1 /* delivery */
            invokeinterface io.vertx.proton.ProtonDelivery.getRemoteState:()Lorg/apache/qpid/proton/amqp/transport/DeliveryState;
            invokeinterface org.apache.qpid.proton.amqp.transport.DeliveryState.getType:()Lorg/apache/qpid/proton/amqp/transport/DeliveryState$DeliveryStateType;
            invokevirtual org.apache.qpid.proton.amqp.transport.DeliveryState$DeliveryStateType.ordinal:()I
            iaload
            tableswitch { // 1 - 6
                    1: 10
                    2: 12
                    3: 6
                    4: 12
                    5: 4
                    6: 8
              default: 12
          }
         4: .line 157
      StackMap locals:
      StackMap stack:
            aload 2 /* handler */
            ldc "message rejected (REJECTED"
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         5: .line 158
            goto 13
         6: .line 160
      StackMap locals:
      StackMap stack:
            aload 2 /* handler */
            ldc "message rejected (MODIFIED)"
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         7: .line 161
            goto 13
         8: .line 163
      StackMap locals:
      StackMap stack:
            aload 2 /* handler */
            ldc "message rejected (RELEASED)"
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         9: .line 164
            goto 13
        10: .line 166
      StackMap locals:
      StackMap stack:
            aload 2 /* handler */
            invokestatic io.vertx.core.Future.succeededFuture:()Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        11: .line 167
            goto 13
        12: .line 169
      StackMap locals:
      StackMap stack:
            aload 2 /* handler */
            new java.lang.StringBuilder
            dup
            ldc "Unsupported delivery type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* delivery */
            invokeinterface io.vertx.proton.ProtonDelivery.getRemoteState:()Lorg/apache/qpid/proton/amqp/transport/DeliveryState;
            invokeinterface org.apache.qpid.proton.amqp.transport.DeliveryState.getType:()Lorg/apache/qpid/proton/amqp/transport/DeliveryState$DeliveryStateType;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic io.vertx.core.Future.failedFuture:(Ljava/lang/String;)Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 2 // io.vertx.core.Handler handler
        13: .line 171
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.proton.ProtonDelivery delivery
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   14     1  delivery  Lio/vertx/proton/ProtonDelivery;
            1   13     2   handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;

  private void lambda$6(io.vertx.amqp.AmqpMessage, io.vertx.core.Handler, java.lang.Void);
    descriptor: (Lio/vertx/amqp/AmqpMessage;Lio/vertx/core/Handler;Ljava/lang/Void;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
        start local 3 // java.lang.Void x
         0: .line 181
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpSenderImpl.sender:Lio/vertx/proton/ProtonSender;
            aload 1
            invokeinterface io.vertx.amqp.AmqpMessage.unwrap:()Lorg/apache/qpid/proton/message/Message;
            aload 2
            invokeinterface io.vertx.proton.ProtonSender.send:(Lorg/apache/qpid/proton/message/Message;Lio/vertx/core/Handler;)Lio/vertx/proton/ProtonDelivery;
            pop
         1: .line 183
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         2: .line 188
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpSenderImpl.sender:Lio/vertx/proton/ProtonSender;
            checkcast io.vertx.proton.impl.ProtonSenderImpl
            invokevirtual io.vertx.proton.impl.ProtonSenderImpl.getRemoteCredit:()I
            i2l
            putfield io.vertx.amqp.impl.AmqpSenderImpl.remoteCredit:J
         3: .line 183
            aload 4
            monitorexit
         4: goto 7
      StackMap locals: io.vertx.amqp.impl.AmqpSenderImpl io.vertx.amqp.AmqpMessage io.vertx.core.Handler java.lang.Void io.vertx.amqp.impl.AmqpSenderImpl
      StackMap stack: java.lang.Throwable
         5: aload 4
            monitorexit
         6: athrow
         7: .line 190
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Void x
        end local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lio/vertx/amqp/impl/AmqpSenderImpl;
            0    8     3     x  Ljava/lang/Void;
      Exception table:
        from    to  target  type
           2     4       5  any
           5     6       5  any

  private static void lambda$7(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 241
            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$8(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.AmqpSenderImpl this
        start local 2 // java.lang.Void x
         0: .line 256
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpSenderImpl.sender:Lio/vertx/proton/ProtonSender;
            invokeinterface io.vertx.proton.ProtonSender.isOpen:()Z
            ifeq 8
         1: .line 258
            aload 0 /* this */
            getfield io.vertx.amqp.impl.AmqpSenderImpl.sender:Lio/vertx/proton/ProtonSender;
         2: .line 259
            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/AmqpSenderImpl.lambda$9(Lio/vertx/core/Handler;Lio/vertx/core/AsyncResult;)V (6)
                  (Lio/vertx/core/AsyncResult;)V
            invokeinterface io.vertx.proton.ProtonSender.closeHandler:(Lio/vertx/core/Handler;)Lio/vertx/proton/ProtonLink;
            checkcast io.vertx.proton.ProtonSender
         3: .line 260
            invokeinterface io.vertx.proton.ProtonSender.close:()Lio/vertx/proton/ProtonLink;
            pop
         4: .line 261
            goto 9
      StackMap locals:
      StackMap stack: java.lang.Exception
         5: astore 3 /* e */
        start local 3 // java.lang.Exception e
         6: .line 263
            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
         7: .line 265
            goto 9
         8: .line 266
      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
         9: .line 268
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Void x
        end local 0 // io.vertx.amqp.impl.AmqpSenderImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lio/vertx/amqp/impl/AmqpSenderImpl;
            0   10     2     x  Ljava/lang/Void;
            6    7     3     e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     4       5  Class java.lang.Exception

  private static void lambda$5(io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/AsyncResult;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // io.vertx.core.AsyncResult ar
         0: .line 149
            aload 0 /* ar */
            invokeinterface io.vertx.core.AsyncResult.failed:()Z
            ifeq 2
         1: .line 150
            getstatic io.vertx.amqp.impl.AmqpSenderImpl.LOGGER:Lio/vertx/core/logging/Logger;
            ldc "Message rejected by remote peer"
            aload 0 /* ar */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokevirtual io.vertx.core.logging.Logger.warn:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         2: .line 152
      StackMap locals:
      StackMap stack:
            return
        end local 0 // io.vertx.core.AsyncResult ar
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0    ar  Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;

  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 v
         0: .line 259
            aload 0
            aload 1 /* v */
            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 v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1     v  Lio/vertx/core/AsyncResult<Lio/vertx/proton/ProtonSender;>;
}
SourceFile: "AmqpSenderImpl.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final DeliveryStateType = org.apache.qpid.proton.amqp.transport.DeliveryState$DeliveryStateType of org.apache.qpid.proton.amqp.transport.DeliveryState