class io.vertx.ext.mongo.impl.MongoIterableStream implements io.vertx.core.streams.ReadStream<io.vertx.core.json.JsonObject>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: io.vertx.ext.mongo.impl.MongoIterableStream
  super_class: java.lang.Object
{
  private final io.vertx.core.Context context;
    descriptor: Lio/vertx/core/Context;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.mongodb.async.client.MongoIterable<io.vertx.core.json.JsonObject> mongoIterable;
    descriptor: Lcom/mongodb/async/client/MongoIterable;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/mongodb/async/client/MongoIterable<Lio/vertx/core/json/JsonObject;>;

  private final int batchSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.mongodb.async.AsyncBatchCursor<io.vertx.core.json.JsonObject> batchCursor;
    descriptor: Lcom/mongodb/async/AsyncBatchCursor;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lcom/mongodb/async/AsyncBatchCursor<Lio/vertx/core/json/JsonObject;>;

  private io.vertx.core.streams.impl.InboundBuffer<io.vertx.core.json.JsonObject> queue;
    descriptor: Lio/vertx/core/streams/impl/InboundBuffer;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/vertx/core/streams/impl/InboundBuffer<Lio/vertx/core/json/JsonObject;>;

  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> endHandler;
    descriptor: Lio/vertx/core/Handler;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lio/vertx/core/Handler<Ljava/lang/Void;>;

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

  void <init>(io.vertx.core.Context, com.mongodb.async.client.MongoIterable<io.vertx.core.json.JsonObject>, );
    descriptor: (Lio/vertx/core/Context;Lcom/mongodb/async/client/MongoIterable;I)V
    flags: (0x0000) 
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
        start local 1 // io.vertx.core.Context context
        start local 2 // com.mongodb.async.client.MongoIterable mongoIterable
        start local 3 // int batchSize
         0: .line 31
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 32
            aload 0 /* this */
            aload 1 /* context */
            putfield io.vertx.ext.mongo.impl.MongoIterableStream.context:Lio/vertx/core/Context;
         2: .line 33
            aload 0 /* this */
            aload 2 /* mongoIterable */
            putfield io.vertx.ext.mongo.impl.MongoIterableStream.mongoIterable:Lcom/mongodb/async/client/MongoIterable;
         3: .line 34
            aload 0 /* this */
            iload 3 /* batchSize */
            putfield io.vertx.ext.mongo.impl.MongoIterableStream.batchSize:I
         4: .line 35
            aload 0 /* this */
            new io.vertx.core.streams.impl.InboundBuffer
            dup
            aload 1 /* context */
            invokespecial io.vertx.core.streams.impl.InboundBuffer.<init>:(Lio/vertx/core/Context;)V
            putfield io.vertx.ext.mongo.impl.MongoIterableStream.queue:Lio/vertx/core/streams/impl/InboundBuffer;
         5: .line 36
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.queue:Lio/vertx/core/streams/impl/InboundBuffer;
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/ext/mongo/impl/MongoIterableStream;)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/ext/mongo/impl/MongoIterableStream.lambda$0(Ljava/lang/Void;)V (7)
                  (Ljava/lang/Void;)V
            invokevirtual io.vertx.core.streams.impl.InboundBuffer.drainHandler:(Lio/vertx/core/Handler;)Lio/vertx/core/streams/impl/InboundBuffer;
            pop
         6: .line 37
            return
        end local 3 // int batchSize
        end local 2 // com.mongodb.async.client.MongoIterable mongoIterable
        end local 1 // io.vertx.core.Context context
        end local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    7     0           this  Lio/vertx/ext/mongo/impl/MongoIterableStream;
            0    7     1        context  Lio/vertx/core/Context;
            0    7     2  mongoIterable  Lcom/mongodb/async/client/MongoIterable<Lio/vertx/core/json/JsonObject;>;
            0    7     3      batchSize  I
    Signature: (Lio/vertx/core/Context;Lcom/mongodb/async/client/MongoIterable<Lio/vertx/core/json/JsonObject;>;I)V
    MethodParameters:
               Name  Flags
      context        
      mongoIterable  
      batchSize      

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

  public synchronized io.vertx.ext.mongo.impl.MongoIterableStream handler(io.vertx.core.Handler<io.vertx.core.json.JsonObject>);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/impl/MongoIterableStream;
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
        start local 1 // io.vertx.core.Handler handler
         0: .line 47
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.queue:Lio/vertx/core/streams/impl/InboundBuffer;
            aload 1 /* handler */
            invokevirtual io.vertx.core.streams.impl.InboundBuffer.handler:(Lio/vertx/core/Handler;)Lio/vertx/core/streams/impl/InboundBuffer;
            pop
         1: .line 48
            aload 1 /* handler */
            ifnonnull 4
         2: .line 49
            aload 0 /* this */
            invokevirtual io.vertx.ext.mongo.impl.MongoIterableStream.close:()V
         3: .line 50
            goto 10
         4: .line 51
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokedynamic onResult(Lio/vertx/ext/mongo/impl/MongoIterableStream;)Lcom/mongodb/async/SingleResultCallback;
              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;Ljava/lang/Throwable;)V
                  io/vertx/ext/mongo/impl/MongoIterableStream.lambda$1(Lcom/mongodb/async/AsyncBatchCursor;Ljava/lang/Throwable;)V (7)
                  (Lcom/mongodb/async/AsyncBatchCursor;Ljava/lang/Throwable;)V
            astore 2 /* callback */
        start local 2 // com.mongodb.async.SingleResultCallback callback
         5: .line 68
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.mongoIterable:Lcom/mongodb/async/client/MongoIterable;
            aload 2 /* callback */
            invokeinterface com.mongodb.async.client.MongoIterable.batchCursor:(Lcom/mongodb/async/SingleResultCallback;)V
         6: .line 69
            goto 10
      StackMap locals: io.vertx.ext.mongo.impl.MongoIterableStream io.vertx.core.Handler com.mongodb.async.SingleResultCallback
      StackMap stack: java.lang.Exception
         7: astore 3 /* e */
        start local 3 // java.lang.Exception e
         8: .line 70
            aload 0 /* this */
            invokevirtual io.vertx.ext.mongo.impl.MongoIterableStream.close:()V
         9: .line 71
            aload 0 /* this */
            aload 3 /* e */
            invokevirtual io.vertx.ext.mongo.impl.MongoIterableStream.handleException:(Ljava/lang/Throwable;)V
        end local 3 // java.lang.Exception e
        end local 2 // com.mongodb.async.SingleResultCallback callback
        10: .line 74
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 1 // io.vertx.core.Handler handler
        end local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Lio/vertx/ext/mongo/impl/MongoIterableStream;
            0   11     1   handler  Lio/vertx/core/Handler<Lio/vertx/core/json/JsonObject;>;
            5   10     2  callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/async/AsyncBatchCursor<Lio/vertx/core/json/JsonObject;>;>;
            8   10     3         e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           5     6       7  Class java.lang.Exception
    Signature: (Lio/vertx/core/Handler<Lio/vertx/core/json/JsonObject;>;)Lio/vertx/ext/mongo/impl/MongoIterableStream;
    MethodParameters:
         Name  Flags
      handler  

  public io.vertx.ext.mongo.impl.MongoIterableStream pause();
    descriptor: ()Lio/vertx/ext/mongo/impl/MongoIterableStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
         0: .line 79
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 80
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.closed:Z
            ifeq 4
         2: .line 81
            aload 0 /* this */
            aload 1
            monitorexit
         3: areturn
         4: .line 79
      StackMap locals: io.vertx.ext.mongo.impl.MongoIterableStream
      StackMap stack:
            aload 1
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 84
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.queue:Lio/vertx/core/streams/impl/InboundBuffer;
            invokevirtual io.vertx.core.streams.impl.InboundBuffer.pause:()Lio/vertx/core/streams/impl/InboundBuffer;
            pop
         9: .line 85
            aload 0 /* this */
            areturn
        end local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lio/vertx/ext/mongo/impl/MongoIterableStream;
      Exception table:
        from    to  target  type
           1     3       6  any
           4     5       6  any
           6     7       6  any

  public io.vertx.ext.mongo.impl.MongoIterableStream resume();
    descriptor: ()Lio/vertx/ext/mongo/impl/MongoIterableStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
         0: .line 90
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 91
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.closed:Z
            ifeq 4
         2: .line 92
            aload 0 /* this */
            aload 1
            monitorexit
         3: areturn
         4: .line 90
      StackMap locals: io.vertx.ext.mongo.impl.MongoIterableStream
      StackMap stack:
            aload 1
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 95
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.queue:Lio/vertx/core/streams/impl/InboundBuffer;
            invokevirtual io.vertx.core.streams.impl.InboundBuffer.resume:()Z
            pop
         9: .line 96
            aload 0 /* this */
            areturn
        end local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lio/vertx/ext/mongo/impl/MongoIterableStream;
      Exception table:
        from    to  target  type
           1     3       6  any
           4     5       6  any
           6     7       6  any

  public io.vertx.core.streams.ReadStream<io.vertx.core.json.JsonObject> fetch(long);
    descriptor: (J)Lio/vertx/core/streams/ReadStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
        start local 1 // long amount
         0: .line 101
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         1: .line 102
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.closed:Z
            ifeq 4
         2: .line 103
            aload 0 /* this */
            aload 3
            monitorexit
         3: areturn
         4: .line 101
      StackMap locals: io.vertx.ext.mongo.impl.MongoIterableStream
      StackMap stack:
            aload 3
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 3
            monitorexit
         7: athrow
         8: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.queue:Lio/vertx/core/streams/impl/InboundBuffer;
            lload 1 /* amount */
            invokevirtual io.vertx.core.streams.impl.InboundBuffer.fetch:(J)Z
            pop
         9: .line 107
            aload 0 /* this */
            areturn
        end local 1 // long amount
        end local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lio/vertx/ext/mongo/impl/MongoIterableStream;
            0   10     1  amount  J
      Exception table:
        from    to  target  type
           1     3       6  any
           4     5       6  any
           6     7       6  any
    Signature: (J)Lio/vertx/core/streams/ReadStream<Lio/vertx/core/json/JsonObject;>;
    MethodParameters:
        Name  Flags
      amount  

  private synchronized void doRead();
    descriptor: ()V
    flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
         0: .line 112
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.context:Lio/vertx/core/Context;
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/ext/mongo/impl/MongoIterableStream;)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/ext/mongo/impl/MongoIterableStream.lambda$3(Lio/vertx/core/Promise;)V (7)
                  (Lio/vertx/core/Promise;)V
         1: .line 120
            iconst_1
            aload 0 /* this */
            invokedynamic handle(Lio/vertx/ext/mongo/impl/MongoIterableStream;)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/ext/mongo/impl/MongoIterableStream.lambda$4(Lio/vertx/core/AsyncResult;)V (7)
                  (Lio/vertx/core/AsyncResult;)V
         2: .line 112
            invokeinterface io.vertx.core.Context.executeBlocking:(Lio/vertx/core/Handler;ZLio/vertx/core/Handler;)V
         3: .line 140
            return
        end local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lio/vertx/ext/mongo/impl/MongoIterableStream;

  private void handleException(java.lang.Throwable);
    descriptor: (Ljava/lang/Throwable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
        start local 1 // java.lang.Throwable cause
         0: .line 144
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.exceptionHandler:Lio/vertx/core/Handler;
            ifnull 2
         1: .line 145
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.exceptionHandler:Lio/vertx/core/Handler;
            aload 1 /* cause */
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
         2: .line 147
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.Throwable cause
        end local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lio/vertx/ext/mongo/impl/MongoIterableStream;
            0    3     1  cause  Ljava/lang/Throwable;
    MethodParameters:
       Name  Flags
      cause  

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

  private void close();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
         0: .line 157
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.closed:Z
            ifeq 2
         1: .line 158
            return
         2: .line 160
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield io.vertx.ext.mongo.impl.MongoIterableStream.closed:Z
         3: .line 161
            new java.util.concurrent.atomic.AtomicReference
            dup
            invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
            astore 1 /* cursorRef */
        start local 1 // java.util.concurrent.atomic.AtomicReference cursorRef
         4: .line 162
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.context:Lio/vertx/core/Context;
            aload 0 /* this */
            aload 1 /* cursorRef */
            invokedynamic handle(Lio/vertx/ext/mongo/impl/MongoIterableStream;Ljava/util/concurrent/atomic/AtomicReference;)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/ext/mongo/impl/MongoIterableStream.lambda$6(Ljava/util/concurrent/atomic/AtomicReference;Lio/vertx/core/Promise;)V (7)
                  (Lio/vertx/core/Promise;)V
         5: .line 171
            iconst_0
            aconst_null
         6: .line 162
            invokeinterface io.vertx.core.Context.executeBlocking:(Lio/vertx/core/Handler;ZLio/vertx/core/Handler;)V
         7: .line 172
            return
        end local 1 // java.util.concurrent.atomic.AtomicReference cursorRef
        end local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Lio/vertx/ext/mongo/impl/MongoIterableStream;
            4    8     1  cursorRef  Ljava/util/concurrent/atomic/AtomicReference<Lcom/mongodb/async/AsyncBatchCursor;>;

  public io.vertx.core.streams.ReadStream pause();
    descriptor: ()Lio/vertx/core/streams/ReadStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.vertx.ext.mongo.impl.MongoIterableStream.pause:()Lio/vertx/ext/mongo/impl/MongoIterableStream;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.streams.ReadStream handler(io.vertx.core.Handler);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/streams/ReadStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast io.vertx.core.Handler
            invokevirtual io.vertx.ext.mongo.impl.MongoIterableStream.handler:(Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/impl/MongoIterableStream;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.streams.ReadStream endHandler(io.vertx.core.Handler);
    descriptor: (Lio/vertx/core/Handler;)Lio/vertx/core/streams/ReadStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual io.vertx.ext.mongo.impl.MongoIterableStream.endHandler:(Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/impl/MongoIterableStream;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public io.vertx.core.streams.ReadStream resume();
    descriptor: ()Lio/vertx/core/streams/ReadStream;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual io.vertx.ext.mongo.impl.MongoIterableStream.resume:()Lio/vertx/ext/mongo/impl/MongoIterableStream;
            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.ext.mongo.impl.MongoIterableStream.exceptionHandler:(Lio/vertx/core/Handler;)Lio/vertx/ext/mongo/impl/MongoIterableStream;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

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

  private void lambda$0(java.lang.Void);
    descriptor: (Ljava/lang/Void;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
        start local 1 // java.lang.Void v
         0: .line 36
            aload 0 /* this */
            invokevirtual io.vertx.ext.mongo.impl.MongoIterableStream.doRead:()V
            return
        end local 1 // java.lang.Void v
        end local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/vertx/ext/mongo/impl/MongoIterableStream;
            0    1     1     v  Ljava/lang/Void;

  private void lambda$1(com.mongodb.async.AsyncBatchCursor, java.lang.Throwable);
    descriptor: (Lcom/mongodb/async/AsyncBatchCursor;Ljava/lang/Throwable;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
        start local 1 // com.mongodb.async.AsyncBatchCursor result
        start local 2 // java.lang.Throwable t
         0: .line 52
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.context:Lio/vertx/core/Context;
            aload 0 /* this */
            aload 2 /* t */
            aload 1 /* result */
            invokedynamic handle(Lio/vertx/ext/mongo/impl/MongoIterableStream;Ljava/lang/Throwable;Lcom/mongodb/async/AsyncBatchCursor;)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/ext/mongo/impl/MongoIterableStream.lambda$2(Ljava/lang/Throwable;Lcom/mongodb/async/AsyncBatchCursor;Ljava/lang/Void;)V (7)
                  (Ljava/lang/Void;)V
            invokeinterface io.vertx.core.Context.runOnContext:(Lio/vertx/core/Handler;)V
         1: .line 66
            return
        end local 2 // java.lang.Throwable t
        end local 1 // com.mongodb.async.AsyncBatchCursor result
        end local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lio/vertx/ext/mongo/impl/MongoIterableStream;
            0    2     1  result  Lcom/mongodb/async/AsyncBatchCursor<Lio/vertx/core/json/JsonObject;>;
            0    2     2       t  Ljava/lang/Throwable;

  private void lambda$3(io.vertx.core.Promise);
    descriptor: (Lio/vertx/core/Promise;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
        start local 1 // io.vertx.core.Promise fut
         0: .line 113
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.batchCursor:Lcom/mongodb/async/AsyncBatchCursor;
            aload 1 /* fut */
            invokedynamic onResult(Lio/vertx/core/Promise;)Lcom/mongodb/async/SingleResultCallback;
              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;Ljava/lang/Throwable;)V
                  io/vertx/ext/mongo/impl/MongoIterableStream.lambda$5(Lio/vertx/core/Promise;Ljava/util/List;Ljava/lang/Throwable;)V (6)
                  (Ljava/util/List;Ljava/lang/Throwable;)V
            invokeinterface com.mongodb.async.AsyncBatchCursor.next:(Lcom/mongodb/async/SingleResultCallback;)V
         1: .line 120
            return
        end local 1 // io.vertx.core.Promise fut
        end local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lio/vertx/ext/mongo/impl/MongoIterableStream;
            0    2     1   fut  Lio/vertx/core/Promise<Ljava/util/List<Lio/vertx/core/json/JsonObject;>;>;

  private void lambda$4(io.vertx.core.AsyncResult);
    descriptor: (Lio/vertx/core/AsyncResult;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
        start local 1 // io.vertx.core.AsyncResult ar
         0: .line 121
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 122
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.succeeded:()Z
            ifeq 11
         2: .line 123
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.result:()Ljava/lang/Object;
            checkcast java.util.List
            astore 3 /* list */
        start local 3 // java.util.List list
         3: .line 124
            aload 3 /* list */
            ifnull 7
         4: .line 125
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.queue:Lio/vertx/core/streams/impl/InboundBuffer;
            aload 3 /* list */
            invokevirtual io.vertx.core.streams.impl.InboundBuffer.write:(Ljava/lang/Iterable;)Z
            ifeq 13
         5: .line 126
            aload 0 /* this */
            invokevirtual io.vertx.ext.mongo.impl.MongoIterableStream.doRead:()V
         6: .line 128
            goto 13
         7: .line 129
      StackMap locals: io.vertx.ext.mongo.impl.MongoIterableStream java.util.List
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.ext.mongo.impl.MongoIterableStream.close:()V
         8: .line 130
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.endHandler:Lio/vertx/core/Handler;
            ifnull 13
         9: .line 131
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.endHandler:Lio/vertx/core/Handler;
            aconst_null
            invokeinterface io.vertx.core.Handler.handle:(Ljava/lang/Object;)V
        end local 3 // java.util.List list
        10: .line 134
            goto 13
        11: .line 135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual io.vertx.ext.mongo.impl.MongoIterableStream.close:()V
        12: .line 136
            aload 0 /* this */
            aload 1 /* ar */
            invokeinterface io.vertx.core.AsyncResult.cause:()Ljava/lang/Throwable;
            invokevirtual io.vertx.ext.mongo.impl.MongoIterableStream.handleException:(Ljava/lang/Throwable;)V
        13: .line 121
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        14: goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: aload 2
            monitorexit
        16: athrow
        17: .line 139
      StackMap locals:
      StackMap stack:
            return
        end local 1 // io.vertx.core.AsyncResult ar
        end local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   18     0  this  Lio/vertx/ext/mongo/impl/MongoIterableStream;
            0   18     1    ar  Lio/vertx/core/AsyncResult<Ljava/util/List<Lio/vertx/core/json/JsonObject;>;>;
            3   10     3  list  Ljava/util/List<Lio/vertx/core/json/JsonObject;>;
      Exception table:
        from    to  target  type
           1    14      15  any
          15    16      15  any

  private void lambda$6(java.util.concurrent.atomic.AtomicReference, io.vertx.core.Promise);
    descriptor: (Ljava/util/concurrent/atomic/AtomicReference;Lio/vertx/core/Promise;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
        start local 2 // io.vertx.core.Promise fut
         0: .line 163
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         1: .line 164
            aload 1
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.batchCursor:Lcom/mongodb/async/AsyncBatchCursor;
            invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
         2: .line 163
            aload 3
            monitorexit
         3: goto 6
      StackMap locals: io.vertx.ext.mongo.impl.MongoIterableStream java.util.concurrent.atomic.AtomicReference io.vertx.core.Promise io.vertx.ext.mongo.impl.MongoIterableStream
      StackMap stack: java.lang.Throwable
         4: aload 3
            monitorexit
         5: athrow
         6: .line 166
      StackMap locals:
      StackMap stack:
            aload 1
            invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
            checkcast com.mongodb.async.AsyncBatchCursor
            astore 3 /* cursor */
        start local 3 // com.mongodb.async.AsyncBatchCursor cursor
         7: .line 167
            aload 3 /* cursor */
            ifnull 9
         8: .line 168
            aload 3 /* cursor */
            invokeinterface com.mongodb.async.AsyncBatchCursor.close:()V
         9: .line 170
      StackMap locals: com.mongodb.async.AsyncBatchCursor
      StackMap stack:
            aload 2 /* fut */
            invokeinterface io.vertx.core.Promise.complete:()V
        end local 3 // com.mongodb.async.AsyncBatchCursor cursor
        10: .line 171
            return
        end local 2 // io.vertx.core.Promise fut
        end local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    this  Lio/vertx/ext/mongo/impl/MongoIterableStream;
            0   11     2     fut  Lio/vertx/core/Promise<Ljava/lang/Object;>;
            7   10     3  cursor  Lcom/mongodb/async/AsyncBatchCursor;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any

  private void lambda$2(java.lang.Throwable, com.mongodb.async.AsyncBatchCursor, java.lang.Void);
    descriptor: (Ljava/lang/Throwable;Lcom/mongodb/async/AsyncBatchCursor;Ljava/lang/Void;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
        start local 3 // java.lang.Void v
         0: .line 53
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         1: .line 54
            aload 1
            ifnull 5
         2: .line 55
            aload 0 /* this */
            invokevirtual io.vertx.ext.mongo.impl.MongoIterableStream.close:()V
         3: .line 56
            aload 0 /* this */
            aload 1
            invokevirtual io.vertx.ext.mongo.impl.MongoIterableStream.handleException:(Ljava/lang/Throwable;)V
         4: .line 57
            goto 9
         5: .line 58
      StackMap locals: io.vertx.ext.mongo.impl.MongoIterableStream
      StackMap stack:
            aload 0 /* this */
            aload 2
            putfield io.vertx.ext.mongo.impl.MongoIterableStream.batchCursor:Lcom/mongodb/async/AsyncBatchCursor;
         6: .line 59
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.batchCursor:Lcom/mongodb/async/AsyncBatchCursor;
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.batchSize:I
            invokeinterface com.mongodb.async.AsyncBatchCursor.setBatchSize:(I)V
         7: .line 60
            aload 0 /* this */
            getfield io.vertx.ext.mongo.impl.MongoIterableStream.closed:Z
            ifne 9
         8: .line 61
            aload 0 /* this */
            invokevirtual io.vertx.ext.mongo.impl.MongoIterableStream.doRead:()V
         9: .line 53
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        10: goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: aload 4
            monitorexit
        12: athrow
        13: .line 65
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Void v
        end local 0 // io.vertx.ext.mongo.impl.MongoIterableStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Lio/vertx/ext/mongo/impl/MongoIterableStream;
            0   14     3     v  Ljava/lang/Void;
      Exception table:
        from    to  target  type
           1    10      11  any
          11    12      11  any

  private static void lambda$5(io.vertx.core.Promise, java.util.List, java.lang.Throwable);
    descriptor: (Lio/vertx/core/Promise;Ljava/util/List;Ljava/lang/Throwable;)V
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=3, args_size=3
        start local 1 // java.util.List result
        start local 2 // java.lang.Throwable t
         0: .line 114
            aload 2 /* t */
            ifnull 3
         1: .line 115
            aload 0
            aload 2 /* t */
            invokeinterface io.vertx.core.Promise.fail:(Ljava/lang/Throwable;)V
         2: .line 116
            goto 4
         3: .line 117
      StackMap locals:
      StackMap stack:
            aload 0
            aload 1 /* result */
            invokeinterface io.vertx.core.Promise.complete:(Ljava/lang/Object;)V
         4: .line 119
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Throwable t
        end local 1 // java.util.List result
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     1  result  Ljava/util/List<Lio/vertx/core/json/JsonObject;>;
            0    5     2       t  Ljava/lang/Throwable;
}
Signature: Ljava/lang/Object;Lio/vertx/core/streams/ReadStream<Lio/vertx/core/json/JsonObject;>;
SourceFile: "MongoIterableStream.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles