public class io.vertx.amqpbridge.impl.AmqpProducerImpl implements io.vertx.core.eventbus.MessageProducer<io.vertx.core.json.JsonObject>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: io.vertx.amqpbridge.impl.AmqpProducerImpl
  super_class: java.lang.Object
{
  private final io.vertx.proton.ProtonSender sender;
    descriptor: Lio/vertx/proton/ProtonSender;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.vertx.amqpbridge.impl.MessageTranslatorImpl translator;
    descriptor: Lio/vertx/amqpbridge/impl/MessageTranslatorImpl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final io.vertx.amqpbridge.impl.AmqpBridgeImpl bridge;
    descriptor: Lio/vertx/amqpbridge/impl/AmqpBridgeImpl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String amqpAddress;
    descriptor: Ljava/lang/String;
    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

  public void <init>(io.vertx.amqpbridge.impl.AmqpBridgeImpl, io.vertx.proton.ProtonConnection, java.lang.String);
    descriptor: (Lio/vertx/amqpbridge/impl/AmqpBridgeImpl;Lio/vertx/proton/ProtonConnection;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
        start local 1 // io.vertx.amqpbridge.impl.AmqpBridgeImpl bridge
        start local 2 // io.vertx.proton.ProtonConnection connection
        start local 3 // java.lang.String amqpAddress
         0: .line 43
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 35
            aload 0 /* this */
            new io.vertx.amqpbridge.impl.MessageTranslatorImpl
            dup
            invokespecial io.vertx.amqpbridge.impl.MessageTranslatorImpl.<init>:()V
            putfield io.vertx.amqpbridge.impl.AmqpProducerImpl.translator:Lio/vertx/amqpbridge/impl/MessageTranslatorImpl;
         2: .line 41
            aload 0 /* this */
            lconst_0
            putfield io.vertx.amqpbridge.impl.AmqpProducerImpl.remoteCredit:J
         3: .line 44
            aload 1 /* bridge */
            invokevirtual io.vertx.amqpbridge.impl.AmqpBridgeImpl.onContextEventLoop:()Z
            ifne 5
         4: .line 45
            new java.lang.IllegalStateException
            dup
            ldc "Should be executing on the bridge context thread"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 48
      StackMap locals: io.vertx.amqpbridge.impl.AmqpProducerImpl io.vertx.amqpbridge.impl.AmqpBridgeImpl io.vertx.proton.ProtonConnection java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 1 /* bridge */
            putfield io.vertx.amqpbridge.impl.AmqpProducerImpl.bridge:Lio/vertx/amqpbridge/impl/AmqpBridgeImpl;
         6: .line 49
            aload 0 /* this */
            aload 3 /* amqpAddress */
            putfield io.vertx.amqpbridge.impl.AmqpProducerImpl.amqpAddress:Ljava/lang/String;
         7: .line 51
            aload 0 /* this */
            aload 2 /* connection */
            aload 3 /* amqpAddress */
            invokeinterface io.vertx.proton.ProtonConnection.createSender:(Ljava/lang/String;)Lio/vertx/proton/ProtonSender;
            putfield io.vertx.amqpbridge.impl.AmqpProducerImpl.sender:Lio/vertx/proton/ProtonSender;
         8: .line 52
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.sender:Lio/vertx/proton/ProtonSender;
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/amqpbridge/impl/AmqpProducerImpl;)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/amqpbridge/impl/AmqpProducerImpl.lambda$0(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;
            pop
         9: .line 79
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.sender:Lio/vertx/proton/ProtonSender;
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/amqpbridge/impl/AmqpProducerImpl;)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/amqpbridge/impl/AmqpProducerImpl.lambda$1(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
        10: .line 96
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.sender:Lio/vertx/proton/ProtonSender;
            invokeinterface io.vertx.proton.ProtonSender.open:()Lio/vertx/proton/ProtonLink;
            pop
        11: .line 97
            return
        end local 3 // java.lang.String amqpAddress
        end local 2 // io.vertx.proton.ProtonConnection connection
        end local 1 // io.vertx.amqpbridge.impl.AmqpBridgeImpl bridge
        end local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lio/vertx/amqpbridge/impl/AmqpProducerImpl;
            0   12     1       bridge  Lio/vertx/amqpbridge/impl/AmqpBridgeImpl;
            0   12     2   connection  Lio/vertx/proton/ProtonConnection;
            0   12     3  amqpAddress  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      bridge       
      connection   
      amqpAddress  

  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.amqpbridge.impl.AmqpProducerImpl this
         0: .line 101
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.remoteCredit:J
            lconst_0
            lcmp
            ifgt 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/amqpbridge/impl/AmqpProducerImpl;

  public io.vertx.core.eventbus.MessageProducer<io.vertx.core.json.JsonObject> send(io.vertx.core.json.JsonObject);
    descriptor: (Lio/vertx/core/json/JsonObject;)Lio/vertx/core/eventbus/MessageProducer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
        start local 1 // io.vertx.core.json.JsonObject messageBody
         0: .line 106
            aload 0 /* this */
            aload 1 /* messageBody */
            aconst_null
            invokevirtual io.vertx.amqpbridge.impl.AmqpProducerImpl.send:(Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/core/eventbus/MessageProducer;
            areturn
        end local 1 // io.vertx.core.json.JsonObject messageBody
        end local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lio/vertx/amqpbridge/impl/AmqpProducerImpl;
            0    1     1  messageBody  Lio/vertx/core/json/JsonObject;
    Signature: (Lio/vertx/core/json/JsonObject;)Lio/vertx/core/eventbus/MessageProducer<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
             Name  Flags
      messageBody  

  public <R> io.vertx.core.eventbus.MessageProducer<io.vertx.core.json.JsonObject> send(io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.eventbus.Message<R>>>);
    descriptor: (Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/core/eventbus/MessageProducer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
        start local 1 // io.vertx.core.json.JsonObject messageBody
        start local 2 // io.vertx.core.Handler replyHandler
         0: .line 111
            aload 0 /* this */
            aload 1 /* messageBody */
            aconst_null
            aload 2 /* replyHandler */
            aconst_null
            invokevirtual io.vertx.amqpbridge.impl.AmqpProducerImpl.doSend:(Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;Lio/vertx/core/Handler;Ljava/lang/String;)Lio/vertx/core/eventbus/MessageProducer;
            areturn
        end local 2 // io.vertx.core.Handler replyHandler
        end local 1 // io.vertx.core.json.JsonObject messageBody
        end local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lio/vertx/amqpbridge/impl/AmqpProducerImpl;
            0    1     1   messageBody  Lio/vertx/core/json/JsonObject;
            0    1     2  replyHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/eventbus/Message<TR;>;>;>;
    Signature: <R:Ljava/lang/Object;>(Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/eventbus/Message<TR;>;>;>;)Lio/vertx/core/eventbus/MessageProducer<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
              Name  Flags
      messageBody   
      replyHandler  

  protected <R> io.vertx.core.eventbus.MessageProducer<io.vertx.core.json.JsonObject> doSend(io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>, io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.eventbus.Message<R>>>, java.lang.String);
    descriptor: (Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;Lio/vertx/core/Handler;Ljava/lang/String;)Lio/vertx/core/eventbus/MessageProducer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
        start local 1 // io.vertx.core.json.JsonObject messageBody
        start local 2 // io.vertx.core.Handler completionHandler
        start local 3 // io.vertx.core.Handler replyHandler
        start local 4 // java.lang.String toAddress
         0: .line 117
            aload 3 /* replyHandler */
            ifnull 2
         1: .line 118
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.bridge:Lio/vertx/amqpbridge/impl/AmqpBridgeImpl;
            invokevirtual io.vertx.amqpbridge.impl.AmqpBridgeImpl.verifyReplyToAddressAvailable:()V
         2: .line 121
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.translator:Lio/vertx/amqpbridge/impl/MessageTranslatorImpl;
            aload 1 /* messageBody */
            invokevirtual io.vertx.amqpbridge.impl.MessageTranslatorImpl.convertToAmqpMessage:(Lio/vertx/core/json/JsonObject;)Lorg/apache/qpid/proton/message/Message;
            astore 5 /* msg */
        start local 5 // org.apache.qpid.proton.message.Message msg
         3: .line 123
            aload 4 /* toAddress */
            ifnull 5
         4: .line 124
            aload 5 /* msg */
            aload 4 /* toAddress */
            invokeinterface org.apache.qpid.proton.message.Message.setAddress:(Ljava/lang/String;)V
         5: .line 127
      StackMap locals: org.apache.qpid.proton.message.Message
      StackMap stack:
            aload 0 /* this */
            dup
            astore 6
            monitorenter
         6: .line 131
            aload 0 /* this */
            dup
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.remoteCredit:J
            lconst_1
            lsub
            putfield io.vertx.amqpbridge.impl.AmqpProducerImpl.remoteCredit:J
         7: .line 127
            aload 6
            monitorexit
         8: goto 11
      StackMap locals: io.vertx.amqpbridge.impl.AmqpProducerImpl io.vertx.core.json.JsonObject io.vertx.core.Handler io.vertx.core.Handler java.lang.String org.apache.qpid.proton.message.Message io.vertx.amqpbridge.impl.AmqpProducerImpl
      StackMap stack: java.lang.Throwable
         9: aload 6
            monitorexit
        10: athrow
        11: .line 134
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.bridge:Lio/vertx/amqpbridge/impl/AmqpBridgeImpl;
            iconst_1
            aload 0 /* this */
            aload 3 /* replyHandler */
            aload 5 /* msg */
            aload 2 /* completionHandler */
            invokedynamic handle(Lio/vertx/amqpbridge/impl/AmqpProducerImpl;Lio/vertx/core/Handler;Lorg/apache/qpid/proton/message/Message;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/amqpbridge/impl/AmqpProducerImpl.lambda$2(Lio/vertx/core/Handler;Lorg/apache/qpid/proton/message/Message;Lio/vertx/core/Handler;Ljava/lang/Void;)V (7)
                  (Ljava/lang/Void;)V
            invokevirtual io.vertx.amqpbridge.impl.AmqpBridgeImpl.runOnContext:(ZLio/vertx/core/Handler;)V
        12: .line 171
            aload 0 /* this */
            areturn
        end local 5 // org.apache.qpid.proton.message.Message msg
        end local 4 // java.lang.String toAddress
        end local 3 // io.vertx.core.Handler replyHandler
        end local 2 // io.vertx.core.Handler completionHandler
        end local 1 // io.vertx.core.json.JsonObject messageBody
        end local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   13     0               this  Lio/vertx/amqpbridge/impl/AmqpProducerImpl;
            0   13     1        messageBody  Lio/vertx/core/json/JsonObject;
            0   13     2  completionHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
            0   13     3       replyHandler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/eventbus/Message<TR;>;>;>;
            0   13     4          toAddress  Ljava/lang/String;
            3   13     5                msg  Lorg/apache/qpid/proton/message/Message;
      Exception table:
        from    to  target  type
           6     8       9  any
           9    10       9  any
    Signature: <R:Ljava/lang/Object;>(Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Lio/vertx/core/eventbus/Message<TR;>;>;>;Ljava/lang/String;)Lio/vertx/core/eventbus/MessageProducer<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
                   Name  Flags
      messageBody        
      completionHandler  
      replyHandler       
      toAddress          

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

  public io.vertx.core.eventbus.MessageProducer<io.vertx.core.json.JsonObject> write(io.vertx.core.json.JsonObject);
    descriptor: (Lio/vertx/core/json/JsonObject;)Lio/vertx/core/eventbus/MessageProducer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
        start local 1 // io.vertx.core.json.JsonObject data
         0: .line 183
            aload 0 /* this */
            aload 1 /* data */
            aconst_null
            invokevirtual io.vertx.amqpbridge.impl.AmqpProducerImpl.send:(Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/core/eventbus/MessageProducer;
            areturn
        end local 1 // io.vertx.core.json.JsonObject data
        end local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/amqpbridge/impl/AmqpProducerImpl;
            0    1     1  data  Lio/vertx/core/json/JsonObject;
    Signature: (Lio/vertx/core/json/JsonObject;)Lio/vertx/core/eventbus/MessageProducer<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
      Name  Flags
      data  

  public io.vertx.core.eventbus.MessageProducer<io.vertx.core.json.JsonObject> write(io.vertx.core.json.JsonObject, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.lang.Void>>);
    descriptor: (Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/core/eventbus/MessageProducer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
        start local 1 // io.vertx.core.json.JsonObject data
        start local 2 // io.vertx.core.Handler handler
         0: .line 188
            aload 0 /* this */
            aload 1 /* data */
            aload 2 /* handler */
            aconst_null
            aconst_null
            invokevirtual io.vertx.amqpbridge.impl.AmqpProducerImpl.doSend:(Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;Lio/vertx/core/Handler;Ljava/lang/String;)Lio/vertx/core/eventbus/MessageProducer;
            areturn
        end local 2 // io.vertx.core.Handler handler
        end local 1 // io.vertx.core.json.JsonObject data
        end local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/vertx/amqpbridge/impl/AmqpProducerImpl;
            0    1     1     data  Lio/vertx/core/json/JsonObject;
            0    1     2  handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
    Signature: (Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)Lio/vertx/core/eventbus/MessageProducer<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
         Name  Flags
      data     
      handler  

  public io.vertx.core.eventbus.MessageProducer<io.vertx.core.json.JsonObject> setWriteQueueMaxSize(int);
    descriptor: (I)Lio/vertx/core/eventbus/MessageProducer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
        start local 1 // int maxSize
         0: .line 194
            aload 0 /* this */
            areturn
        end local 1 // int maxSize
        end local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/vertx/amqpbridge/impl/AmqpProducerImpl;
            0    1     1  maxSize  I
    Signature: (I)Lio/vertx/core/eventbus/MessageProducer<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
         Name  Flags
      maxSize  

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

  public io.vertx.core.eventbus.MessageProducer<io.vertx.core.json.JsonObject> deliveryOptions(io.vertx.core.eventbus.DeliveryOptions);
    descriptor: (Lio/vertx/core/eventbus/DeliveryOptions;)Lio/vertx/core/eventbus/MessageProducer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
        start local 1 // io.vertx.core.eventbus.DeliveryOptions options
         0: .line 205
            new java.lang.UnsupportedOperationException
            dup
            ldc "DeliveryOptions are not supported by this producer"
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // io.vertx.core.eventbus.DeliveryOptions options
        end local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lio/vertx/amqpbridge/impl/AmqpProducerImpl;
            0    1     1  options  Lio/vertx/core/eventbus/DeliveryOptions;
    Signature: (Lio/vertx/core/eventbus/DeliveryOptions;)Lio/vertx/core/eventbus/MessageProducer<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
         Name  Flags
      options  

  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.amqpbridge.impl.AmqpProducerImpl this
         0: .line 210
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.amqpAddress:Ljava/lang/String;
            areturn
        end local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/amqpbridge/impl/AmqpProducerImpl;

  public void end();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
         0: .line 215
            aload 0 /* this */
            invokevirtual io.vertx.amqpbridge.impl.AmqpProducerImpl.close:()V
         1: .line 216
            return
        end local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/amqpbridge/impl/AmqpProducerImpl;

  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.amqpbridge.impl.AmqpProducerImpl this
        start local 1 // io.vertx.core.Handler handler
         0: .line 220
            aload 0 /* this */
            aload 1 /* handler */
            invokevirtual io.vertx.amqpbridge.impl.AmqpProducerImpl.close:(Lio/vertx/core/Handler;)V
         1: .line 221
            return
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lio/vertx/amqpbridge/impl/AmqpProducerImpl;
            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 void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
         0: .line 225
            aload 0 /* this */
            aconst_null
            invokevirtual io.vertx.amqpbridge.impl.AmqpProducerImpl.close:(Lio/vertx/core/Handler;)V
         1: .line 226
            return
        end local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/amqpbridge/impl/AmqpProducerImpl;

  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=4, locals=3, args_size=2
        start local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
        start local 1 // io.vertx.core.Handler handler
         0: .line 230
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 231
            aload 0 /* this */
            iconst_1
            putfield io.vertx.amqpbridge.impl.AmqpProducerImpl.closed:Z
         2: .line 230
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: io.vertx.amqpbridge.impl.AmqpProducerImpl io.vertx.core.Handler io.vertx.amqpbridge.impl.AmqpProducerImpl
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 234
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.bridge:Lio/vertx/amqpbridge/impl/AmqpBridgeImpl;
            iconst_1
            aload 0 /* this */
            aload 1 /* handler */
            invokedynamic handle(Lio/vertx/amqpbridge/impl/AmqpProducerImpl;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/amqpbridge/impl/AmqpProducerImpl.lambda$4(Lio/vertx/core/Handler;Ljava/lang/Void;)V (7)
                  (Ljava/lang/Void;)V
            invokevirtual io.vertx.amqpbridge.impl.AmqpBridgeImpl.runOnContext:(ZLio/vertx/core/Handler;)V
         7: .line 240
            return
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lio/vertx/amqpbridge/impl/AmqpProducerImpl;
            0    8     1  handler  Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/AsyncResult<Ljava/lang/Void;>;>;)V
    MethodParameters:
         Name  Flags
      handler  

  public io.vertx.core.eventbus.MessageProducer send(java.lang.Object, io.vertx.core.Handler);
    descriptor: (Ljava/lang/Object;Lio/vertx/core/Handler;)Lio/vertx/core/eventbus/MessageProducer;
    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.core.json.JsonObject
            aload 2
            checkcast io.vertx.core.Handler
            invokevirtual io.vertx.amqpbridge.impl.AmqpProducerImpl.send:(Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/core/eventbus/MessageProducer;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.eventbus.MessageProducer send(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lio/vertx/core/eventbus/MessageProducer;
    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.json.JsonObject
            invokevirtual io.vertx.amqpbridge.impl.AmqpProducerImpl.send:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/eventbus/MessageProducer;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  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.core.json.JsonObject
            aload 2
            invokevirtual io.vertx.amqpbridge.impl.AmqpProducerImpl.write:(Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/core/eventbus/MessageProducer;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.eventbus.MessageProducer write(java.lang.Object, io.vertx.core.Handler);
    descriptor: (Ljava/lang/Object;Lio/vertx/core/Handler;)Lio/vertx/core/eventbus/MessageProducer;
    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.core.json.JsonObject
            aload 2
            invokevirtual io.vertx.amqpbridge.impl.AmqpProducerImpl.write:(Lio/vertx/core/json/JsonObject;Lio/vertx/core/Handler;)Lio/vertx/core/eventbus/MessageProducer;
            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.core.json.JsonObject
            invokevirtual io.vertx.amqpbridge.impl.AmqpProducerImpl.write:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/eventbus/MessageProducer;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.eventbus.MessageProducer write(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lio/vertx/core/eventbus/MessageProducer;
    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.json.JsonObject
            invokevirtual io.vertx.amqpbridge.impl.AmqpProducerImpl.write:(Lio/vertx/core/json/JsonObject;)Lio/vertx/core/eventbus/MessageProducer;
            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.amqpbridge.impl.AmqpProducerImpl.setWriteQueueMaxSize:(I)Lio/vertx/core/eventbus/MessageProducer;
            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.amqpbridge.impl.AmqpProducerImpl.exceptionHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/eventbus/MessageProducer;
            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.amqpbridge.impl.AmqpProducerImpl.exceptionHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/eventbus/MessageProducer;
            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.amqpbridge.impl.AmqpProducerImpl.drainHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/eventbus/MessageProducer;
            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 32
            getstatic io.vertx.amqpbridge.impl.AmqpProducerImpl.$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.amqpbridge.impl.AmqpProducerImpl.$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.core.AsyncResult);
    descriptor: (Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
        start local 1 // io.vertx.core.AsyncResult res
         0: .line 53
            aconst_null
            astore 2 /* eh */
        start local 2 // io.vertx.core.Handler eh
         1: .line 54
            iconst_0
            istore 3 /* closeSender */
        start local 3 // boolean closeSender
         2: .line 56
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         3: .line 57
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.closed:Z
            ifne 5
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.exceptionHandler:Lio/vertx/core/Handler;
            ifnull 5
         4: .line 58
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.exceptionHandler:Lio/vertx/core/Handler;
            astore 2 /* eh */
         5: .line 61
      StackMap locals: io.vertx.core.Handler int io.vertx.amqpbridge.impl.AmqpProducerImpl
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.closed:Z
            ifne 8
         6: .line 62
            aload 0 /* this */
            iconst_1
            putfield io.vertx.amqpbridge.impl.AmqpProducerImpl.closed:Z
         7: .line 63
            iconst_1
            istore 3 /* closeSender */
         8: .line 56
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 4
            monitorexit
        11: athrow
        12: .line 67
      StackMap locals:
      StackMap stack:
            aload 2 /* eh */
            ifnull 17
        13: .line 68
            aload 1 /* res */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 16
        14: .line 69
            aload 2 /* eh */
            new io.vertx.core.VertxException
            dup
            ldc "Producer closed remotely"
            invokespecial io.vertx.core.VertxException.<init>:(Ljava/lang/String;)V
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        15: .line 70
            goto 17
        16: .line 71
      StackMap locals:
      StackMap stack:
            aload 2 /* eh */
            new io.vertx.core.VertxException
            dup
            ldc "Producer closed remotely with error"
            aload 1 /* 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
        17: .line 75
      StackMap locals:
      StackMap stack:
            iload 3 /* closeSender */
            ifeq 19
        18: .line 76
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.sender:Lio/vertx/proton/ProtonSender;
            invokeinterface io.vertx.proton.ProtonSender.close:()Lio/vertx/proton/ProtonLink;
            pop
        end local 3 // boolean closeSender
        end local 2 // io.vertx.core.Handler eh
        19: .line 78
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.AsyncResult res
        end local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0         this  Lio/vertx/amqpbridge/impl/AmqpProducerImpl;
            0   20     1          res  Lio/vertx/core/AsyncResult<Lio/vertx/proton/ProtonSender;>;
            1   19     2           eh  Lio/vertx/core/Handler<Ljava/lang/Throwable;>;
            2   19     3  closeSender  Z
      Exception table:
        from    to  target  type
           3     9      10  any
          10    11      10  any

  private void lambda$1(io.vertx.proton.ProtonSender);
    descriptor: (Lio/vertx/proton/ProtonSender;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
        start local 1 // io.vertx.proton.ProtonSender s
         0: .line 80
            aconst_null
            astore 2 /* dh */
        start local 2 // io.vertx.core.Handler dh
         1: .line 81
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         2: .line 83
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.sender:Lio/vertx/proton/ProtonSender;
            checkcast io.vertx.proton.impl.ProtonSenderImpl
            invokevirtual io.vertx.proton.impl.ProtonSenderImpl.getRemoteCredit:()I
            i2l
            putfield io.vertx.amqpbridge.impl.AmqpProducerImpl.remoteCredit:J
         3: .line 86
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.drainHandler:Lio/vertx/core/Handler;
            ifnull 5
         4: .line 87
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.drainHandler:Lio/vertx/core/Handler;
            astore 2 /* dh */
         5: .line 81
      StackMap locals: io.vertx.core.Handler io.vertx.amqpbridge.impl.AmqpProducerImpl
      StackMap stack:
            aload 3
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 3
            monitorexit
         8: athrow
         9: .line 91
      StackMap locals:
      StackMap stack:
            aload 2 /* dh */
            ifnull 11
        10: .line 92
            aload 2 /* dh */
            aconst_null
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 2 // io.vertx.core.Handler dh
        11: .line 94
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.proton.ProtonSender s
        end local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lio/vertx/amqpbridge/impl/AmqpProducerImpl;
            0   12     1     s  Lio/vertx/proton/ProtonSender;
            1   11     2    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$2(io.vertx.core.Handler, org.apache.qpid.proton.message.Message, io.vertx.core.Handler, java.lang.Void);
    descriptor: (Lio/vertx/core/Handler;Lorg/apache/qpid/proton/message/Message;Lio/vertx/core/Handler;Ljava/lang/Void;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=6, args_size=5
        start local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
        start local 4 // java.lang.Void v
         0: .line 135
            aload 1
            ifnull 2
         1: .line 136
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.bridge:Lio/vertx/amqpbridge/impl/AmqpBridgeImpl;
            aload 2
            aload 1
            invokevirtual io.vertx.amqpbridge.impl.AmqpBridgeImpl.registerReplyToHandler:(Lorg/apache/qpid/proton/message/Message;Lio/vertx/core/Handler;)V
         2: .line 139
      StackMap locals:
      StackMap stack:
            aload 3
            ifnonnull 5
         3: .line 140
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.sender:Lio/vertx/proton/ProtonSender;
            aload 2
            invokeinterface io.vertx.proton.ProtonSender.send:(Lorg/apache/qpid/proton/message/Message;)Lio/vertx/proton/ProtonDelivery;
            pop
         4: .line 141
            goto 6
         5: .line 142
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.sender:Lio/vertx/proton/ProtonSender;
            aload 2
            aload 3
            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/amqpbridge/impl/AmqpProducerImpl.lambda$3(Lio/vertx/core/Handler;Lio/vertx/proton/ProtonDelivery;)V (6)
                  (Lio/vertx/proton/ProtonDelivery;)V
            invokeinterface io.vertx.proton.ProtonSender.send:(Lorg/apache/qpid/proton/message/Message;Lio/vertx/core/Handler;)Lio/vertx/proton/ProtonDelivery;
            pop
         6: .line 162
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 5
            monitorenter
         7: .line 167
            aload 0 /* this */
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.sender:Lio/vertx/proton/ProtonSender;
            checkcast io.vertx.proton.impl.ProtonSenderImpl
            invokevirtual io.vertx.proton.impl.ProtonSenderImpl.getRemoteCredit:()I
            i2l
            putfield io.vertx.amqpbridge.impl.AmqpProducerImpl.remoteCredit:J
         8: .line 162
            aload 5
            monitorexit
         9: goto 12
      StackMap locals: io.vertx.amqpbridge.impl.AmqpProducerImpl io.vertx.core.Handler org.apache.qpid.proton.message.Message io.vertx.core.Handler java.lang.Void io.vertx.amqpbridge.impl.AmqpProducerImpl
      StackMap stack: java.lang.Throwable
        10: aload 5
            monitorexit
        11: athrow
        12: .line 169
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Void v
        end local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Lio/vertx/amqpbridge/impl/AmqpProducerImpl;
            0   13     4     v  Ljava/lang/Void;
      Exception table:
        from    to  target  type
           7     9      10  any
          10    11      10  any

  private void lambda$4(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=3, args_size=3
        start local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
        start local 2 // java.lang.Void v
         0: .line 235
            aload 0 /* this */
            getfield io.vertx.amqpbridge.impl.AmqpProducerImpl.sender:Lio/vertx/proton/ProtonSender;
            invokeinterface io.vertx.proton.ProtonSender.close:()Lio/vertx/proton/ProtonLink;
            pop
         1: .line 236
            aload 1
            ifnull 3
         2: .line 237
            aload 1
            invokestatic io.vertx.core.Future.succeededFuture:()Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         3: .line 239
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Void v
        end local 0 // io.vertx.amqpbridge.impl.AmqpProducerImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/vertx/amqpbridge/impl/AmqpProducerImpl;
            0    4     2     v  Ljava/lang/Void;

  private static void lambda$3(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=2, args_size=2
        start local 1 // io.vertx.proton.ProtonDelivery delivery
         0: .line 143
            invokestatic io.vertx.amqpbridge.impl.AmqpProducerImpl.$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: 7
                    2: 9
                    3: 3
                    4: 9
                    5: 1
                    6: 5
              default: 9
          }
         1: .line 145
      StackMap locals:
      StackMap stack:
            aload 0
            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
         2: .line 146
            goto 10
         3: .line 148
      StackMap locals:
      StackMap stack:
            aload 0
            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
         4: .line 149
            goto 10
         5: .line 151
      StackMap locals:
      StackMap stack:
            aload 0
            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
         6: .line 152
            goto 10
         7: .line 154
      StackMap locals:
      StackMap stack:
            aload 0
            invokestatic io.vertx.core.Future.succeededFuture:()Lio/vertx/core/Future;
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         8: .line 155
            goto 10
         9: .line 157
      StackMap locals:
      StackMap stack:
            aload 0
            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
        10: .line 159
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.proton.ProtonDelivery delivery
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     1  delivery  Lio/vertx/proton/ProtonDelivery;
}
Signature: Ljava/lang/Object;Lio/vertx/core/eventbus/MessageProducer<Lio/vertx/core/json/JsonObject;>;
SourceFile: "AmqpProducerImpl.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