public class com.mongodb.operation.MixedBulkWriteOperation implements com.mongodb.operation.AsyncWriteOperation<com.mongodb.bulk.BulkWriteResult>, com.mongodb.operation.WriteOperation<com.mongodb.bulk.BulkWriteResult>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.mongodb.operation.MixedBulkWriteOperation
  super_class: java.lang.Object
{
  private static final org.bson.FieldNameValidator NO_OP_FIELD_NAME_VALIDATOR;
    descriptor: Lorg/bson/FieldNameValidator;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final com.mongodb.MongoNamespace namespace;
    descriptor: Lcom/mongodb/MongoNamespace;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<? extends com.mongodb.bulk.WriteRequest> writeRequests;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<+Lcom/mongodb/bulk/WriteRequest;>;

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

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

  private final com.mongodb.WriteConcern writeConcern;
    descriptor: Lcom/mongodb/WriteConcern;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.lang.Boolean bypassDocumentValidation;
    descriptor: Ljava/lang/Boolean;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 73
            new com.mongodb.internal.validator.NoOpFieldNameValidator
            dup
            invokespecial com.mongodb.internal.validator.NoOpFieldNameValidator.<init>:()V
            putstatic com.mongodb.operation.MixedBulkWriteOperation.NO_OP_FIELD_NAME_VALIDATOR:Lorg/bson/FieldNameValidator;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(com.mongodb.MongoNamespace, java.util.List<? extends com.mongodb.bulk.WriteRequest>, boolean, com.mongodb.WriteConcern);
    descriptor: (Lcom/mongodb/MongoNamespace;Ljava/util/List;ZLcom/mongodb/WriteConcern;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // java.util.List writeRequests
        start local 3 // boolean ordered
        start local 4 // com.mongodb.WriteConcern writeConcern
         0: .line 93
            aload 0 /* this */
            aload 1 /* namespace */
            aload 2 /* writeRequests */
            iload 3 /* ordered */
            aload 4 /* writeConcern */
            iconst_0
            invokespecial com.mongodb.operation.MixedBulkWriteOperation.<init>:(Lcom/mongodb/MongoNamespace;Ljava/util/List;ZLcom/mongodb/WriteConcern;Z)V
         1: .line 94
            return
        end local 4 // com.mongodb.WriteConcern writeConcern
        end local 3 // boolean ordered
        end local 2 // java.util.List writeRequests
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/operation/MixedBulkWriteOperation;
            0    2     1      namespace  Lcom/mongodb/MongoNamespace;
            0    2     2  writeRequests  Ljava/util/List<+Lcom/mongodb/bulk/WriteRequest;>;
            0    2     3        ordered  Z
            0    2     4   writeConcern  Lcom/mongodb/WriteConcern;
    Signature: (Lcom/mongodb/MongoNamespace;Ljava/util/List<+Lcom/mongodb/bulk/WriteRequest;>;ZLcom/mongodb/WriteConcern;)V
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      namespace      final
      writeRequests  final
      ordered        final
      writeConcern   final

  public void <init>(com.mongodb.MongoNamespace, java.util.List<? extends com.mongodb.bulk.WriteRequest>, boolean, com.mongodb.WriteConcern, );
    descriptor: (Lcom/mongodb/MongoNamespace;Ljava/util/List;ZLcom/mongodb/WriteConcern;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
        start local 1 // com.mongodb.MongoNamespace namespace
        start local 2 // java.util.List writeRequests
        start local 3 // boolean ordered
        start local 4 // com.mongodb.WriteConcern writeConcern
        start local 5 // boolean retryWrites
         0: .line 106
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 108
            aload 0 /* this */
            iload 3 /* ordered */
            putfield com.mongodb.operation.MixedBulkWriteOperation.ordered:Z
         2: .line 109
            aload 0 /* this */
            ldc "namespace"
            aload 1 /* namespace */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.MongoNamespace
            putfield com.mongodb.operation.MixedBulkWriteOperation.namespace:Lcom/mongodb/MongoNamespace;
         3: .line 110
            aload 0 /* this */
            ldc "writes"
            aload 2 /* writeRequests */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            putfield com.mongodb.operation.MixedBulkWriteOperation.writeRequests:Ljava/util/List;
         4: .line 111
            aload 0 /* this */
            ldc "writeConcern"
            aload 4 /* writeConcern */
            invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.mongodb.WriteConcern
            putfield com.mongodb.operation.MixedBulkWriteOperation.writeConcern:Lcom/mongodb/WriteConcern;
         5: .line 112
            aload 0 /* this */
            iload 5 /* retryWrites */
            putfield com.mongodb.operation.MixedBulkWriteOperation.retryWrites:Z
         6: .line 113
            ldc "writes is not an empty list"
            aload 2 /* writeRequests */
            invokeinterface java.util.List.isEmpty:()Z
            ifeq 7
            iconst_0
            goto 8
      StackMap locals: com.mongodb.operation.MixedBulkWriteOperation com.mongodb.MongoNamespace java.util.List int com.mongodb.WriteConcern int
      StackMap stack: java.lang.String
         7: iconst_1
      StackMap locals: com.mongodb.operation.MixedBulkWriteOperation com.mongodb.MongoNamespace java.util.List int com.mongodb.WriteConcern int
      StackMap stack: java.lang.String int
         8: invokestatic com.mongodb.assertions.Assertions.isTrueArgument:(Ljava/lang/String;Z)V
         9: .line 114
            return
        end local 5 // boolean retryWrites
        end local 4 // com.mongodb.WriteConcern writeConcern
        end local 3 // boolean ordered
        end local 2 // java.util.List writeRequests
        end local 1 // com.mongodb.MongoNamespace namespace
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Lcom/mongodb/operation/MixedBulkWriteOperation;
            0   10     1      namespace  Lcom/mongodb/MongoNamespace;
            0   10     2  writeRequests  Ljava/util/List<+Lcom/mongodb/bulk/WriteRequest;>;
            0   10     3        ordered  Z
            0   10     4   writeConcern  Lcom/mongodb/WriteConcern;
            0   10     5    retryWrites  Z
    Signature: (Lcom/mongodb/MongoNamespace;Ljava/util/List<+Lcom/mongodb/bulk/WriteRequest;>;ZLcom/mongodb/WriteConcern;Z)V
    MethodParameters:
               Name  Flags
      namespace      final
      writeRequests  final
      ordered        final
      writeConcern   final
      retryWrites    final

  public com.mongodb.MongoNamespace getNamespace();
    descriptor: ()Lcom/mongodb/MongoNamespace;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
         0: .line 122
            aload 0 /* this */
            getfield com.mongodb.operation.MixedBulkWriteOperation.namespace:Lcom/mongodb/MongoNamespace;
            areturn
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/operation/MixedBulkWriteOperation;

  public com.mongodb.WriteConcern getWriteConcern();
    descriptor: ()Lcom/mongodb/WriteConcern;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
         0: .line 131
            aload 0 /* this */
            getfield com.mongodb.operation.MixedBulkWriteOperation.writeConcern:Lcom/mongodb/WriteConcern;
            areturn
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/operation/MixedBulkWriteOperation;

  public boolean isOrdered();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
         0: .line 140
            aload 0 /* this */
            getfield com.mongodb.operation.MixedBulkWriteOperation.ordered:Z
            ireturn
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/operation/MixedBulkWriteOperation;

  public java.util.List<? extends com.mongodb.bulk.WriteRequest> getWriteRequests();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
         0: .line 149
            aload 0 /* this */
            getfield com.mongodb.operation.MixedBulkWriteOperation.writeRequests:Ljava/util/List;
            areturn
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/operation/MixedBulkWriteOperation;
    Signature: ()Ljava/util/List<+Lcom/mongodb/bulk/WriteRequest;>;

  public java.lang.Boolean getBypassDocumentValidation();
    descriptor: ()Ljava/lang/Boolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
         0: .line 160
            aload 0 /* this */
            getfield com.mongodb.operation.MixedBulkWriteOperation.bypassDocumentValidation:Ljava/lang/Boolean;
            areturn
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/operation/MixedBulkWriteOperation;

  public com.mongodb.operation.MixedBulkWriteOperation bypassDocumentValidation(java.lang.Boolean);
    descriptor: (Ljava/lang/Boolean;)Lcom/mongodb/operation/MixedBulkWriteOperation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
        start local 1 // java.lang.Boolean bypassDocumentValidation
         0: .line 172
            aload 0 /* this */
            aload 1 /* bypassDocumentValidation */
            putfield com.mongodb.operation.MixedBulkWriteOperation.bypassDocumentValidation:Ljava/lang/Boolean;
         1: .line 173
            aload 0 /* this */
            areturn
        end local 1 // java.lang.Boolean bypassDocumentValidation
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    2     0                      this  Lcom/mongodb/operation/MixedBulkWriteOperation;
            0    2     1  bypassDocumentValidation  Ljava/lang/Boolean;
    MethodParameters:
                          Name  Flags
      bypassDocumentValidation  final

  public java.lang.Boolean getRetryWrites();
    descriptor: ()Ljava/lang/Boolean;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
         0: .line 184
            aload 0 /* this */
            getfield com.mongodb.operation.MixedBulkWriteOperation.retryWrites:Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/mongodb/operation/MixedBulkWriteOperation;

  public com.mongodb.bulk.BulkWriteResult execute(com.mongodb.binding.WriteBinding);
    descriptor: (Lcom/mongodb/binding/WriteBinding;)Lcom/mongodb/bulk/BulkWriteResult;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
        start local 1 // com.mongodb.binding.WriteBinding binding
         0: .line 196
            aload 1 /* binding */
            new com.mongodb.operation.MixedBulkWriteOperation$1
            dup
            aload 0 /* this */
            aload 1 /* binding */
            invokespecial com.mongodb.operation.MixedBulkWriteOperation$1.<init>:(Lcom/mongodb/operation/MixedBulkWriteOperation;Lcom/mongodb/binding/WriteBinding;)V
            invokestatic com.mongodb.operation.OperationHelper.withReleasableConnection:(Lcom/mongodb/binding/WriteBinding;Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource;)Ljava/lang/Object;
            checkcast com.mongodb.bulk.BulkWriteResult
            areturn
        end local 1 // com.mongodb.binding.WriteBinding binding
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/mongodb/operation/MixedBulkWriteOperation;
            0    1     1  binding  Lcom/mongodb/binding/WriteBinding;
    MethodParameters:
         Name  Flags
      binding  final

  public void executeAsync(com.mongodb.binding.AsyncWriteBinding, com.mongodb.async.SingleResultCallback<com.mongodb.bulk.BulkWriteResult>);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
        start local 1 // com.mongodb.binding.AsyncWriteBinding binding
        start local 2 // com.mongodb.async.SingleResultCallback callback
         0: .line 215
            aload 2 /* callback */
            getstatic com.mongodb.operation.OperationHelper.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
            invokestatic com.mongodb.internal.async.ErrorHandlingResultCallback.errorHandlingCallback:(Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/diagnostics/logging/Logger;)Lcom/mongodb/async/SingleResultCallback;
            astore 3 /* errHandlingCallback */
        start local 3 // com.mongodb.async.SingleResultCallback errHandlingCallback
         1: .line 216
            aload 1 /* binding */
            new com.mongodb.operation.MixedBulkWriteOperation$2
            dup
            aload 0 /* this */
            aload 3 /* errHandlingCallback */
            aload 1 /* binding */
            invokespecial com.mongodb.operation.MixedBulkWriteOperation$2.<init>:(Lcom/mongodb/operation/MixedBulkWriteOperation;Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/binding/AsyncWriteBinding;)V
            invokestatic com.mongodb.operation.OperationHelper.withAsyncConnection:(Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;)V
         2: .line 252
            return
        end local 3 // com.mongodb.async.SingleResultCallback errHandlingCallback
        end local 2 // com.mongodb.async.SingleResultCallback callback
        end local 1 // com.mongodb.binding.AsyncWriteBinding binding
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    3     0                 this  Lcom/mongodb/operation/MixedBulkWriteOperation;
            0    3     1              binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0    3     2             callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/bulk/BulkWriteResult;>;
            1    3     3  errHandlingCallback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/bulk/BulkWriteResult;>;
    Signature: (Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/bulk/BulkWriteResult;>;)V
    MethodParameters:
          Name  Flags
      binding   final
      callback  final

  private com.mongodb.bulk.BulkWriteResult executeBulkWriteBatch(com.mongodb.binding.WriteBinding, com.mongodb.connection.Connection, com.mongodb.operation.BulkWriteBatch);
    descriptor: (Lcom/mongodb/binding/WriteBinding;Lcom/mongodb/connection/Connection;Lcom/mongodb/operation/BulkWriteBatch;)Lcom/mongodb/bulk/BulkWriteResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=4
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
        start local 1 // com.mongodb.binding.WriteBinding binding
        start local 2 // com.mongodb.connection.Connection connection
        start local 3 // com.mongodb.operation.BulkWriteBatch originalBatch
         0: .line 256
            aload 3 /* originalBatch */
            astore 4 /* currentBatch */
        start local 4 // com.mongodb.operation.BulkWriteBatch currentBatch
         1: .line 257
            aconst_null
            astore 5 /* exception */
        start local 5 // com.mongodb.MongoException exception
         2: .line 260
            goto 12
         3: .line 261
      StackMap locals: com.mongodb.operation.BulkWriteBatch com.mongodb.MongoException
      StackMap stack:
            aload 0 /* this */
            aload 2 /* connection */
            aload 4 /* currentBatch */
            aload 1 /* binding */
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.executeCommand:(Lcom/mongodb/connection/Connection;Lcom/mongodb/operation/BulkWriteBatch;Lcom/mongodb/binding/WriteBinding;)Lorg/bson/BsonDocument;
            astore 6 /* result */
        start local 6 // org.bson.BsonDocument result
         4: .line 263
            aload 0 /* this */
            getfield com.mongodb.operation.MixedBulkWriteOperation.retryWrites:Z
            ifeq 10
            aload 1 /* binding */
            invokeinterface com.mongodb.binding.WriteBinding.getSessionContext:()Lcom/mongodb/session/SessionContext;
            invokeinterface com.mongodb.session.SessionContext.hasActiveTransaction:()Z
            ifne 10
         5: .line 264
            aload 6 /* result */
         6: .line 265
            aload 2 /* connection */
            invokeinterface com.mongodb.connection.Connection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            invokevirtual com.mongodb.connection.ConnectionDescription.getServerAddress:()Lcom/mongodb/ServerAddress;
            ldc "errMsg"
         7: .line 264
            invokestatic com.mongodb.internal.connection.ProtocolHelper.createSpecialException:(Lorg/bson/BsonDocument;Lcom/mongodb/ServerAddress;Ljava/lang/String;)Lcom/mongodb/MongoException;
            astore 7 /* writeConcernBasedError */
        start local 7 // com.mongodb.MongoException writeConcernBasedError
         8: .line 266
            aload 7 /* writeConcernBasedError */
            ifnull 10
            iconst_1
            aload 7 /* writeConcernBasedError */
            invokestatic com.mongodb.operation.CommandOperationHelper.shouldAttemptToRetryWrite:(ZLjava/lang/Throwable;)Z
            ifeq 10
         9: .line 267
            new com.mongodb.internal.connection.MongoWriteConcernWithResponseException
            dup
            aload 7 /* writeConcernBasedError */
            aload 6 /* result */
            invokespecial com.mongodb.internal.connection.MongoWriteConcernWithResponseException.<init>:(Lcom/mongodb/MongoException;Ljava/lang/Object;)V
            athrow
        end local 7 // com.mongodb.MongoException writeConcernBasedError
        10: .line 271
      StackMap locals: org.bson.BsonDocument
      StackMap stack:
            aload 4 /* currentBatch */
            aload 6 /* result */
            invokevirtual com.mongodb.operation.BulkWriteBatch.addResult:(Lorg/bson/BsonDocument;)V
        11: .line 272
            aload 4 /* currentBatch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getNextBatch:()Lcom/mongodb/operation/BulkWriteBatch;
            astore 4 /* currentBatch */
        end local 6 // org.bson.BsonDocument result
        12: .line 260
      StackMap locals:
      StackMap stack:
            aload 4 /* currentBatch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.shouldProcessBatch:()Z
            ifne 3
        13: .line 274
            goto 20
      StackMap locals:
      StackMap stack: com.mongodb.MongoException
        14: astore 6 /* e */
        start local 6 // com.mongodb.MongoException e
        15: .line 275
            aload 6 /* e */
            astore 5 /* exception */
        end local 6 // com.mongodb.MongoException e
        16: .line 277
            aload 2 /* connection */
            invokeinterface com.mongodb.connection.Connection.release:()V
            goto 21
        17: .line 276
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 8
        18: .line 277
            aload 2 /* connection */
            invokeinterface com.mongodb.connection.Connection.release:()V
        19: .line 278
            aload 8
            athrow
        20: .line 277
      StackMap locals:
      StackMap stack:
            aload 2 /* connection */
            invokeinterface com.mongodb.connection.Connection.release:()V
        21: .line 280
      StackMap locals:
      StackMap stack:
            aload 5 /* exception */
            ifnonnull 28
        22: .line 282
            aload 4 /* currentBatch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getResult:()Lcom/mongodb/bulk/BulkWriteResult;
        23: areturn
        24: .line 283
      StackMap locals:
      StackMap stack: com.mongodb.MongoException
            astore 6 /* e */
        start local 6 // com.mongodb.MongoException e
        25: .line 284
            aload 3 /* originalBatch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getRetryWrites:()Z
            ifeq 27
        26: .line 285
            aload 3 /* originalBatch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getPayload:()Lcom/mongodb/connection/SplittablePayload;
            invokevirtual com.mongodb.connection.SplittablePayload.getPayloadType:()Lcom/mongodb/connection/SplittablePayload$Type;
            invokevirtual com.mongodb.connection.SplittablePayload$Type.toString:()Ljava/lang/String;
            aload 6 /* e */
            invokestatic com.mongodb.operation.CommandOperationHelper.logUnableToRetry:(Ljava/lang/String;Ljava/lang/Throwable;)V
        27: .line 287
      StackMap locals: com.mongodb.MongoException
      StackMap stack:
            aload 6 /* e */
            athrow
        end local 6 // com.mongodb.MongoException e
        28: .line 289
      StackMap locals:
      StackMap stack:
            aload 5 /* exception */
            instanceof com.mongodb.internal.connection.MongoWriteConcernWithResponseException
            ifne 33
        29: .line 290
            aload 3 /* originalBatch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getRetryWrites:()Z
            aload 5 /* exception */
            invokestatic com.mongodb.operation.CommandOperationHelper.shouldAttemptToRetryWrite:(ZLjava/lang/Throwable;)Z
            ifne 33
        30: .line 291
            aload 3 /* originalBatch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getRetryWrites:()Z
            ifeq 32
        31: .line 292
            aload 3 /* originalBatch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getPayload:()Lcom/mongodb/connection/SplittablePayload;
            invokevirtual com.mongodb.connection.SplittablePayload.getPayloadType:()Lcom/mongodb/connection/SplittablePayload$Type;
            invokevirtual com.mongodb.connection.SplittablePayload$Type.toString:()Ljava/lang/String;
            aload 5 /* exception */
            invokestatic com.mongodb.operation.CommandOperationHelper.logUnableToRetry:(Ljava/lang/String;Ljava/lang/Throwable;)V
        32: .line 294
      StackMap locals:
      StackMap stack:
            aload 5 /* exception */
            invokestatic com.mongodb.operation.CommandOperationHelper.transformWriteException:(Lcom/mongodb/MongoException;)Lcom/mongodb/MongoException;
            athrow
        33: .line 296
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* binding */
            aload 4 /* currentBatch */
            aload 5 /* exception */
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.retryExecuteBatches:(Lcom/mongodb/binding/WriteBinding;Lcom/mongodb/operation/BulkWriteBatch;Lcom/mongodb/MongoException;)Lcom/mongodb/bulk/BulkWriteResult;
            areturn
        end local 5 // com.mongodb.MongoException exception
        end local 4 // com.mongodb.operation.BulkWriteBatch currentBatch
        end local 3 // com.mongodb.operation.BulkWriteBatch originalBatch
        end local 2 // com.mongodb.connection.Connection connection
        end local 1 // com.mongodb.binding.WriteBinding binding
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0   34     0                    this  Lcom/mongodb/operation/MixedBulkWriteOperation;
            0   34     1                 binding  Lcom/mongodb/binding/WriteBinding;
            0   34     2              connection  Lcom/mongodb/connection/Connection;
            0   34     3           originalBatch  Lcom/mongodb/operation/BulkWriteBatch;
            1   34     4            currentBatch  Lcom/mongodb/operation/BulkWriteBatch;
            2   34     5               exception  Lcom/mongodb/MongoException;
            4   12     6                  result  Lorg/bson/BsonDocument;
            8   10     7  writeConcernBasedError  Lcom/mongodb/MongoException;
           15   16     6                       e  Lcom/mongodb/MongoException;
           25   28     6                       e  Lcom/mongodb/MongoException;
      Exception table:
        from    to  target  type
           2    13      14  Class com.mongodb.MongoException
           2    16      17  any
          22    23      24  Class com.mongodb.MongoException
    MethodParameters:
               Name  Flags
      binding        final
      connection     final
      originalBatch  final

  private com.mongodb.bulk.BulkWriteResult retryExecuteBatches(com.mongodb.binding.WriteBinding, com.mongodb.operation.BulkWriteBatch, com.mongodb.MongoException);
    descriptor: (Lcom/mongodb/binding/WriteBinding;Lcom/mongodb/operation/BulkWriteBatch;Lcom/mongodb/MongoException;)Lcom/mongodb/bulk/BulkWriteResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=4, args_size=4
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
        start local 1 // com.mongodb.binding.WriteBinding binding
        start local 2 // com.mongodb.operation.BulkWriteBatch retryBatch
        start local 3 // com.mongodb.MongoException originalError
         0: .line 302
            aload 2 /* retryBatch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getPayload:()Lcom/mongodb/connection/SplittablePayload;
            invokevirtual com.mongodb.connection.SplittablePayload.getPayloadType:()Lcom/mongodb/connection/SplittablePayload$Type;
            invokevirtual com.mongodb.connection.SplittablePayload$Type.toString:()Ljava/lang/String;
            aload 3 /* originalError */
            invokestatic com.mongodb.operation.CommandOperationHelper.logRetryExecute:(Ljava/lang/String;Ljava/lang/Throwable;)V
         1: .line 303
            aload 1 /* binding */
            aload 3 /* originalError */
            new com.mongodb.operation.MixedBulkWriteOperation$3
            dup
            aload 0 /* this */
            aload 1 /* binding */
            aload 2 /* retryBatch */
            aload 3 /* originalError */
            invokespecial com.mongodb.operation.MixedBulkWriteOperation$3.<init>:(Lcom/mongodb/operation/MixedBulkWriteOperation;Lcom/mongodb/binding/WriteBinding;Lcom/mongodb/operation/BulkWriteBatch;Lcom/mongodb/MongoException;)V
            invokestatic com.mongodb.operation.OperationHelper.withReleasableConnection:(Lcom/mongodb/binding/WriteBinding;Lcom/mongodb/MongoException;Lcom/mongodb/operation/OperationHelper$CallableWithConnectionAndSource;)Ljava/lang/Object;
            checkcast com.mongodb.bulk.BulkWriteResult
            areturn
        end local 3 // com.mongodb.MongoException originalError
        end local 2 // com.mongodb.operation.BulkWriteBatch retryBatch
        end local 1 // com.mongodb.binding.WriteBinding binding
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lcom/mongodb/operation/MixedBulkWriteOperation;
            0    2     1        binding  Lcom/mongodb/binding/WriteBinding;
            0    2     2     retryBatch  Lcom/mongodb/operation/BulkWriteBatch;
            0    2     3  originalError  Lcom/mongodb/MongoException;
    MethodParameters:
               Name  Flags
      binding        final
      retryBatch     final
      originalError  final

  private com.mongodb.bulk.BulkWriteResult executeLegacyBatches(com.mongodb.connection.Connection);
    descriptor: (Lcom/mongodb/connection/Connection;)Lcom/mongodb/bulk/BulkWriteResult;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
        start local 1 // com.mongodb.connection.Connection connection
         0: .line 333
            aload 0 /* this */
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.getWriteRequests:()Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 3
            goto 9
      StackMap locals: com.mongodb.operation.MixedBulkWriteOperation com.mongodb.connection.Connection top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast com.mongodb.bulk.WriteRequest
            astore 2 /* writeRequest */
        start local 2 // com.mongodb.bulk.WriteRequest writeRequest
         2: .line 334
            aload 2 /* writeRequest */
            invokevirtual com.mongodb.bulk.WriteRequest.getType:()Lcom/mongodb/bulk/WriteRequest$Type;
            getstatic com.mongodb.bulk.WriteRequest$Type.INSERT:Lcom/mongodb/bulk/WriteRequest$Type;
            if_acmpne 5
         3: .line 335
            aload 1 /* connection */
            aload 0 /* this */
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.getNamespace:()Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.isOrdered:()Z
            aload 2 /* writeRequest */
            checkcast com.mongodb.bulk.InsertRequest
            invokeinterface com.mongodb.connection.Connection.insert:(Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/InsertRequest;)Lcom/mongodb/WriteConcernResult;
            pop
         4: .line 336
            goto 9
      StackMap locals: com.mongodb.operation.MixedBulkWriteOperation com.mongodb.connection.Connection com.mongodb.bulk.WriteRequest java.util.Iterator
      StackMap stack:
         5: aload 2 /* writeRequest */
            invokevirtual com.mongodb.bulk.WriteRequest.getType:()Lcom/mongodb/bulk/WriteRequest$Type;
            getstatic com.mongodb.bulk.WriteRequest$Type.UPDATE:Lcom/mongodb/bulk/WriteRequest$Type;
            if_acmpeq 6
            aload 2 /* writeRequest */
            invokevirtual com.mongodb.bulk.WriteRequest.getType:()Lcom/mongodb/bulk/WriteRequest$Type;
            getstatic com.mongodb.bulk.WriteRequest$Type.REPLACE:Lcom/mongodb/bulk/WriteRequest$Type;
            if_acmpne 8
         6: .line 337
      StackMap locals:
      StackMap stack:
            aload 1 /* connection */
            aload 0 /* this */
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.getNamespace:()Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.isOrdered:()Z
            aload 2 /* writeRequest */
            checkcast com.mongodb.bulk.UpdateRequest
            invokeinterface com.mongodb.connection.Connection.update:(Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/UpdateRequest;)Lcom/mongodb/WriteConcernResult;
            pop
         7: .line 338
            goto 9
         8: .line 339
      StackMap locals:
      StackMap stack:
            aload 1 /* connection */
            aload 0 /* this */
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.getNamespace:()Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.isOrdered:()Z
            aload 2 /* writeRequest */
            checkcast com.mongodb.bulk.DeleteRequest
            invokeinterface com.mongodb.connection.Connection.delete:(Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/DeleteRequest;)Lcom/mongodb/WriteConcernResult;
            pop
        end local 2 // com.mongodb.bulk.WriteRequest writeRequest
         9: .line 333
      StackMap locals: com.mongodb.operation.MixedBulkWriteOperation com.mongodb.connection.Connection top java.util.Iterator
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
        10: .line 342
            invokestatic com.mongodb.bulk.BulkWriteResult.unacknowledged:()Lcom/mongodb/bulk/BulkWriteResult;
            astore 5
        11: .line 344
            aload 1 /* connection */
            invokeinterface com.mongodb.connection.Connection.release:()V
        12: .line 342
            aload 5
            areturn
        13: .line 343
      StackMap locals: com.mongodb.operation.MixedBulkWriteOperation com.mongodb.connection.Connection
      StackMap stack: java.lang.Throwable
            astore 4
        14: .line 344
            aload 1 /* connection */
            invokeinterface com.mongodb.connection.Connection.release:()V
        15: .line 345
            aload 4
            athrow
        end local 1 // com.mongodb.connection.Connection connection
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   16     0          this  Lcom/mongodb/operation/MixedBulkWriteOperation;
            0   16     1    connection  Lcom/mongodb/connection/Connection;
            2    9     2  writeRequest  Lcom/mongodb/bulk/WriteRequest;
      Exception table:
        from    to  target  type
           0    11      13  any
    MethodParameters:
            Name  Flags
      connection  final

  private void executeBatchesAsync(com.mongodb.binding.AsyncWriteBinding, com.mongodb.connection.AsyncConnection, com.mongodb.operation.BulkWriteBatch, boolean, com.mongodb.operation.OperationHelper$ConnectionReleasingWrappedCallback<com.mongodb.bulk.BulkWriteResult>);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/BulkWriteBatch;ZLcom/mongodb/operation/OperationHelper$ConnectionReleasingWrappedCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=6, args_size=6
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
        start local 1 // com.mongodb.binding.AsyncWriteBinding binding
        start local 2 // com.mongodb.connection.AsyncConnection connection
        start local 3 // com.mongodb.operation.BulkWriteBatch batch
        start local 4 // boolean retryWrites
        start local 5 // com.mongodb.operation.OperationHelper$ConnectionReleasingWrappedCallback callback
         0: .line 350
            aload 0 /* this */
            aload 1 /* binding */
            aload 2 /* connection */
            aload 3 /* batch */
            aload 5 /* callback */
            aload 0 /* this */
            aload 1 /* binding */
            aload 2 /* connection */
            aload 3 /* batch */
            iload 4 /* retryWrites */
            iconst_0
         1: .line 351
            aload 5 /* callback */
         2: .line 350
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.getCommandCallback:(Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/BulkWriteBatch;ZZLcom/mongodb/operation/OperationHelper$ConnectionReleasingWrappedCallback;)Lcom/mongodb/async/SingleResultCallback;
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.executeCommandAsync:(Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/BulkWriteBatch;Lcom/mongodb/operation/OperationHelper$ConnectionReleasingWrappedCallback;Lcom/mongodb/async/SingleResultCallback;)V
         3: .line 352
            return
        end local 5 // com.mongodb.operation.OperationHelper$ConnectionReleasingWrappedCallback callback
        end local 4 // boolean retryWrites
        end local 3 // com.mongodb.operation.BulkWriteBatch batch
        end local 2 // com.mongodb.connection.AsyncConnection connection
        end local 1 // com.mongodb.binding.AsyncWriteBinding binding
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lcom/mongodb/operation/MixedBulkWriteOperation;
            0    4     1      binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0    4     2   connection  Lcom/mongodb/connection/AsyncConnection;
            0    4     3        batch  Lcom/mongodb/operation/BulkWriteBatch;
            0    4     4  retryWrites  Z
            0    4     5     callback  Lcom/mongodb/operation/OperationHelper$ConnectionReleasingWrappedCallback<Lcom/mongodb/bulk/BulkWriteResult;>;
    Signature: (Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/BulkWriteBatch;ZLcom/mongodb/operation/OperationHelper$ConnectionReleasingWrappedCallback<Lcom/mongodb/bulk/BulkWriteResult;>;)V
    MethodParameters:
             Name  Flags
      binding      final
      connection   final
      batch        final
      retryWrites  final
      callback     final

  private void retryExecuteBatchesAsync(com.mongodb.binding.AsyncWriteBinding, com.mongodb.operation.BulkWriteBatch, java.lang.Throwable, com.mongodb.async.SingleResultCallback<com.mongodb.bulk.BulkWriteResult>);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/operation/BulkWriteBatch;Ljava/lang/Throwable;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
        start local 1 // com.mongodb.binding.AsyncWriteBinding binding
        start local 2 // com.mongodb.operation.BulkWriteBatch retryBatch
        start local 3 // java.lang.Throwable originalError
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 356
            aload 2 /* retryBatch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getPayload:()Lcom/mongodb/connection/SplittablePayload;
            invokevirtual com.mongodb.connection.SplittablePayload.getPayloadType:()Lcom/mongodb/connection/SplittablePayload$Type;
            invokevirtual com.mongodb.connection.SplittablePayload$Type.toString:()Ljava/lang/String;
            aload 3 /* originalError */
            invokestatic com.mongodb.operation.CommandOperationHelper.logRetryExecute:(Ljava/lang/String;Ljava/lang/Throwable;)V
         1: .line 357
            aload 1 /* binding */
            new com.mongodb.operation.MixedBulkWriteOperation$4
            dup
            aload 0 /* this */
            aload 4 /* callback */
            aload 3 /* originalError */
            aload 1 /* binding */
            aload 2 /* retryBatch */
            invokespecial com.mongodb.operation.MixedBulkWriteOperation$4.<init>:(Lcom/mongodb/operation/MixedBulkWriteOperation;Lcom/mongodb/async/SingleResultCallback;Ljava/lang/Throwable;Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/operation/BulkWriteBatch;)V
            invokestatic com.mongodb.operation.OperationHelper.withAsyncConnection:(Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/operation/OperationHelper$AsyncCallableWithConnectionAndSource;)V
         2: .line 399
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // java.lang.Throwable originalError
        end local 2 // com.mongodb.operation.BulkWriteBatch retryBatch
        end local 1 // com.mongodb.binding.AsyncWriteBinding binding
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Lcom/mongodb/operation/MixedBulkWriteOperation;
            0    3     1        binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0    3     2     retryBatch  Lcom/mongodb/operation/BulkWriteBatch;
            0    3     3  originalError  Ljava/lang/Throwable;
            0    3     4       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/bulk/BulkWriteResult;>;
    Signature: (Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/operation/BulkWriteBatch;Ljava/lang/Throwable;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/bulk/BulkWriteResult;>;)V
    MethodParameters:
               Name  Flags
      binding        final
      retryBatch     final
      originalError  final
      callback       final

  private void executeLegacyBatchesAsync(com.mongodb.connection.AsyncConnection, java.util.List<? extends com.mongodb.bulk.WriteRequest>, int, com.mongodb.async.SingleResultCallback<com.mongodb.bulk.BulkWriteResult>);
    descriptor: (Lcom/mongodb/connection/AsyncConnection;Ljava/util/List;ILcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=5
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
        start local 1 // com.mongodb.connection.AsyncConnection connection
        start local 2 // java.util.List writeRequests
        start local 3 // int batchNum
        start local 4 // com.mongodb.async.SingleResultCallback callback
         0: .line 404
            aload 2 /* writeRequests */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 12
         1: .line 405
            aload 2 /* writeRequests */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast com.mongodb.bulk.WriteRequest
            astore 5 /* writeRequest */
        start local 5 // com.mongodb.bulk.WriteRequest writeRequest
         2: .line 406
            aload 2 /* writeRequests */
            iconst_1
            aload 2 /* writeRequests */
            invokeinterface java.util.List.size:()I
            invokeinterface java.util.List.subList:(II)Ljava/util/List;
            astore 6 /* remaining */
        start local 6 // java.util.List remaining
         3: .line 408
            new com.mongodb.operation.MixedBulkWriteOperation$5
            dup
            aload 0 /* this */
            aload 4 /* callback */
            aload 1 /* connection */
            aload 6 /* remaining */
            iload 3 /* batchNum */
            invokespecial com.mongodb.operation.MixedBulkWriteOperation$5.<init>:(Lcom/mongodb/operation/MixedBulkWriteOperation;Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/connection/AsyncConnection;Ljava/util/List;I)V
            astore 7 /* writeCallback */
        start local 7 // com.mongodb.async.SingleResultCallback writeCallback
         4: .line 419
            aload 5 /* writeRequest */
            invokevirtual com.mongodb.bulk.WriteRequest.getType:()Lcom/mongodb/bulk/WriteRequest$Type;
            getstatic com.mongodb.bulk.WriteRequest$Type.INSERT:Lcom/mongodb/bulk/WriteRequest$Type;
            if_acmpne 7
         5: .line 420
            aload 1 /* connection */
            aload 0 /* this */
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.getNamespace:()Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.isOrdered:()Z
            aload 5 /* writeRequest */
            checkcast com.mongodb.bulk.InsertRequest
            aload 7 /* writeCallback */
            invokeinterface com.mongodb.connection.AsyncConnection.insertAsync:(Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/InsertRequest;Lcom/mongodb/async/SingleResultCallback;)V
         6: .line 421
            goto 16
      StackMap locals: com.mongodb.bulk.WriteRequest java.util.List com.mongodb.async.SingleResultCallback
      StackMap stack:
         7: aload 5 /* writeRequest */
            invokevirtual com.mongodb.bulk.WriteRequest.getType:()Lcom/mongodb/bulk/WriteRequest$Type;
            getstatic com.mongodb.bulk.WriteRequest$Type.UPDATE:Lcom/mongodb/bulk/WriteRequest$Type;
            if_acmpeq 8
            aload 5 /* writeRequest */
            invokevirtual com.mongodb.bulk.WriteRequest.getType:()Lcom/mongodb/bulk/WriteRequest$Type;
            getstatic com.mongodb.bulk.WriteRequest$Type.REPLACE:Lcom/mongodb/bulk/WriteRequest$Type;
            if_acmpne 10
         8: .line 422
      StackMap locals:
      StackMap stack:
            aload 1 /* connection */
            aload 0 /* this */
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.getNamespace:()Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.isOrdered:()Z
            aload 5 /* writeRequest */
            checkcast com.mongodb.bulk.UpdateRequest
            aload 7 /* writeCallback */
            invokeinterface com.mongodb.connection.AsyncConnection.updateAsync:(Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/UpdateRequest;Lcom/mongodb/async/SingleResultCallback;)V
         9: .line 423
            goto 16
        10: .line 424
      StackMap locals:
      StackMap stack:
            aload 1 /* connection */
            aload 0 /* this */
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.getNamespace:()Lcom/mongodb/MongoNamespace;
            aload 0 /* this */
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.isOrdered:()Z
            aload 5 /* writeRequest */
            checkcast com.mongodb.bulk.DeleteRequest
            aload 7 /* writeCallback */
            invokeinterface com.mongodb.connection.AsyncConnection.deleteAsync:(Lcom/mongodb/MongoNamespace;ZLcom/mongodb/bulk/DeleteRequest;Lcom/mongodb/async/SingleResultCallback;)V
        end local 7 // com.mongodb.async.SingleResultCallback writeCallback
        end local 6 // java.util.List remaining
        end local 5 // com.mongodb.bulk.WriteRequest writeRequest
        11: .line 426
            goto 16
        12: .line 427
      StackMap locals:
      StackMap stack:
            aload 4 /* callback */
            invokestatic com.mongodb.bulk.BulkWriteResult.unacknowledged:()Lcom/mongodb/bulk/BulkWriteResult;
            aconst_null
            invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        13: .line 429
            goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: astore 5 /* t */
        start local 5 // java.lang.Throwable t
        15: .line 430
            aload 4 /* callback */
            aconst_null
            aload 5 /* t */
            invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 5 // java.lang.Throwable t
        16: .line 432
      StackMap locals:
      StackMap stack:
            return
        end local 4 // com.mongodb.async.SingleResultCallback callback
        end local 3 // int batchNum
        end local 2 // java.util.List writeRequests
        end local 1 // com.mongodb.connection.AsyncConnection connection
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0           this  Lcom/mongodb/operation/MixedBulkWriteOperation;
            0   17     1     connection  Lcom/mongodb/connection/AsyncConnection;
            0   17     2  writeRequests  Ljava/util/List<+Lcom/mongodb/bulk/WriteRequest;>;
            0   17     3       batchNum  I
            0   17     4       callback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/bulk/BulkWriteResult;>;
            2   11     5   writeRequest  Lcom/mongodb/bulk/WriteRequest;
            3   11     6      remaining  Ljava/util/List<+Lcom/mongodb/bulk/WriteRequest;>;
            4   11     7  writeCallback  Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/WriteConcernResult;>;
           15   16     5              t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0    13      14  Class java.lang.Throwable
    Signature: (Lcom/mongodb/connection/AsyncConnection;Ljava/util/List<+Lcom/mongodb/bulk/WriteRequest;>;ILcom/mongodb/async/SingleResultCallback<Lcom/mongodb/bulk/BulkWriteResult;>;)V
    MethodParameters:
               Name  Flags
      connection     final
      writeRequests  final
      batchNum       final
      callback       final

  private org.bson.BsonDocument executeCommand(com.mongodb.connection.Connection, com.mongodb.operation.BulkWriteBatch, com.mongodb.binding.WriteBinding);
    descriptor: (Lcom/mongodb/connection/Connection;Lcom/mongodb/operation/BulkWriteBatch;Lcom/mongodb/binding/WriteBinding;)Lorg/bson/BsonDocument;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=4, args_size=4
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
        start local 1 // com.mongodb.connection.Connection connection
        start local 2 // com.mongodb.operation.BulkWriteBatch batch
        start local 3 // com.mongodb.binding.WriteBinding binding
         0: .line 435
            aload 1 /* connection */
            aload 0 /* this */
            getfield com.mongodb.operation.MixedBulkWriteOperation.namespace:Lcom/mongodb/MongoNamespace;
            invokevirtual com.mongodb.MongoNamespace.getDatabaseName:()Ljava/lang/String;
            aload 2 /* batch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getCommand:()Lorg/bson/BsonDocument;
            getstatic com.mongodb.operation.MixedBulkWriteOperation.NO_OP_FIELD_NAME_VALIDATOR:Lorg/bson/FieldNameValidator;
         1: .line 436
            aconst_null
            aload 2 /* batch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getDecoder:()Lorg/bson/codecs/Decoder;
            aload 3 /* binding */
            invokeinterface com.mongodb.binding.WriteBinding.getSessionContext:()Lcom/mongodb/session/SessionContext;
            aload 0 /* this */
            aload 2 /* batch */
            aload 3 /* binding */
            invokeinterface com.mongodb.binding.WriteBinding.getSessionContext:()Lcom/mongodb/session/SessionContext;
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.shouldAcknowledge:(Lcom/mongodb/operation/BulkWriteBatch;Lcom/mongodb/session/SessionContext;)Z
         2: .line 437
            aload 2 /* batch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getPayload:()Lcom/mongodb/connection/SplittablePayload;
            aload 2 /* batch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getFieldNameValidator:()Lorg/bson/FieldNameValidator;
         3: .line 435
            invokeinterface com.mongodb.connection.Connection.command:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;ZLcom/mongodb/connection/SplittablePayload;Lorg/bson/FieldNameValidator;)Ljava/lang/Object;
            checkcast org.bson.BsonDocument
            areturn
        end local 3 // com.mongodb.binding.WriteBinding binding
        end local 2 // com.mongodb.operation.BulkWriteBatch batch
        end local 1 // com.mongodb.connection.Connection connection
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/mongodb/operation/MixedBulkWriteOperation;
            0    4     1  connection  Lcom/mongodb/connection/Connection;
            0    4     2       batch  Lcom/mongodb/operation/BulkWriteBatch;
            0    4     3     binding  Lcom/mongodb/binding/WriteBinding;
    MethodParameters:
            Name  Flags
      connection  final
      batch       final
      binding     final

  private void executeCommandAsync(com.mongodb.binding.AsyncWriteBinding, com.mongodb.connection.AsyncConnection, com.mongodb.operation.BulkWriteBatch, com.mongodb.operation.OperationHelper$ConnectionReleasingWrappedCallback<com.mongodb.bulk.BulkWriteResult>, com.mongodb.async.SingleResultCallback<org.bson.BsonDocument>);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/BulkWriteBatch;Lcom/mongodb/operation/OperationHelper$ConnectionReleasingWrappedCallback;Lcom/mongodb/async/SingleResultCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=11, locals=7, args_size=6
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
        start local 1 // com.mongodb.binding.AsyncWriteBinding binding
        start local 2 // com.mongodb.connection.AsyncConnection connection
        start local 3 // com.mongodb.operation.BulkWriteBatch batch
        start local 4 // com.mongodb.operation.OperationHelper$ConnectionReleasingWrappedCallback callback
        start local 5 // com.mongodb.async.SingleResultCallback commandCallback
         0: .line 444
            aload 2 /* connection */
            aload 0 /* this */
            getfield com.mongodb.operation.MixedBulkWriteOperation.namespace:Lcom/mongodb/MongoNamespace;
            invokevirtual com.mongodb.MongoNamespace.getDatabaseName:()Ljava/lang/String;
            aload 3 /* batch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getCommand:()Lorg/bson/BsonDocument;
            getstatic com.mongodb.operation.MixedBulkWriteOperation.NO_OP_FIELD_NAME_VALIDATOR:Lorg/bson/FieldNameValidator;
         1: .line 445
            aconst_null
            aload 3 /* batch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getDecoder:()Lorg/bson/codecs/Decoder;
            aload 1 /* binding */
            invokeinterface com.mongodb.binding.AsyncWriteBinding.getSessionContext:()Lcom/mongodb/session/SessionContext;
            aload 0 /* this */
            aload 3 /* batch */
            aload 1 /* binding */
            invokeinterface com.mongodb.binding.AsyncWriteBinding.getSessionContext:()Lcom/mongodb/session/SessionContext;
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.shouldAcknowledge:(Lcom/mongodb/operation/BulkWriteBatch;Lcom/mongodb/session/SessionContext;)Z
         2: .line 446
            aload 3 /* batch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getPayload:()Lcom/mongodb/connection/SplittablePayload;
            aload 3 /* batch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getFieldNameValidator:()Lorg/bson/FieldNameValidator;
            aload 5 /* commandCallback */
         3: .line 444
            invokeinterface com.mongodb.connection.AsyncConnection.commandAsync:(Ljava/lang/String;Lorg/bson/BsonDocument;Lorg/bson/FieldNameValidator;Lcom/mongodb/ReadPreference;Lorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;ZLcom/mongodb/connection/SplittablePayload;Lorg/bson/FieldNameValidator;Lcom/mongodb/async/SingleResultCallback;)V
         4: .line 447
            goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: astore 6 /* t */
        start local 6 // java.lang.Throwable t
         6: .line 448
            aload 4 /* callback */
            aconst_null
            aload 6 /* t */
            invokevirtual com.mongodb.operation.OperationHelper$ConnectionReleasingWrappedCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        end local 6 // java.lang.Throwable t
         7: .line 450
      StackMap locals:
      StackMap stack:
            return
        end local 5 // com.mongodb.async.SingleResultCallback commandCallback
        end local 4 // com.mongodb.operation.OperationHelper$ConnectionReleasingWrappedCallback callback
        end local 3 // com.mongodb.operation.BulkWriteBatch batch
        end local 2 // com.mongodb.connection.AsyncConnection connection
        end local 1 // com.mongodb.binding.AsyncWriteBinding binding
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lcom/mongodb/operation/MixedBulkWriteOperation;
            0    8     1          binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0    8     2       connection  Lcom/mongodb/connection/AsyncConnection;
            0    8     3            batch  Lcom/mongodb/operation/BulkWriteBatch;
            0    8     4         callback  Lcom/mongodb/operation/OperationHelper$ConnectionReleasingWrappedCallback<Lcom/mongodb/bulk/BulkWriteResult;>;
            0    8     5  commandCallback  Lcom/mongodb/async/SingleResultCallback<Lorg/bson/BsonDocument;>;
            6    7     6                t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     4       5  Class java.lang.Throwable
    Signature: (Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/BulkWriteBatch;Lcom/mongodb/operation/OperationHelper$ConnectionReleasingWrappedCallback<Lcom/mongodb/bulk/BulkWriteResult;>;Lcom/mongodb/async/SingleResultCallback<Lorg/bson/BsonDocument;>;)V
    MethodParameters:
                 Name  Flags
      binding          final
      connection       final
      batch            final
      callback         final
      commandCallback  final

  private com.mongodb.WriteConcern getAppliedWriteConcern(com.mongodb.binding.WriteBinding);
    descriptor: (Lcom/mongodb/binding/WriteBinding;)Lcom/mongodb/WriteConcern;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
        start local 1 // com.mongodb.binding.WriteBinding binding
         0: .line 454
            aload 0 /* this */
            aload 1 /* binding */
            invokeinterface com.mongodb.binding.WriteBinding.getSessionContext:()Lcom/mongodb/session/SessionContext;
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.getAppliedWriteConcern:(Lcom/mongodb/session/SessionContext;)Lcom/mongodb/WriteConcern;
            areturn
        end local 1 // com.mongodb.binding.WriteBinding binding
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/mongodb/operation/MixedBulkWriteOperation;
            0    1     1  binding  Lcom/mongodb/binding/WriteBinding;
    MethodParameters:
         Name  Flags
      binding  final

  private com.mongodb.WriteConcern getAppliedWriteConcern(com.mongodb.binding.AsyncWriteBinding);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;)Lcom/mongodb/WriteConcern;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
        start local 1 // com.mongodb.binding.AsyncWriteBinding binding
         0: .line 458
            aload 0 /* this */
            aload 1 /* binding */
            invokeinterface com.mongodb.binding.AsyncWriteBinding.getSessionContext:()Lcom/mongodb/session/SessionContext;
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.getAppliedWriteConcern:(Lcom/mongodb/session/SessionContext;)Lcom/mongodb/WriteConcern;
            areturn
        end local 1 // com.mongodb.binding.AsyncWriteBinding binding
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lcom/mongodb/operation/MixedBulkWriteOperation;
            0    1     1  binding  Lcom/mongodb/binding/AsyncWriteBinding;
    MethodParameters:
         Name  Flags
      binding  final

  private com.mongodb.WriteConcern getAppliedWriteConcern(com.mongodb.session.SessionContext);
    descriptor: (Lcom/mongodb/session/SessionContext;)Lcom/mongodb/WriteConcern;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
        start local 1 // com.mongodb.session.SessionContext sessionContext
         0: .line 462
            aload 1 /* sessionContext */
            invokeinterface com.mongodb.session.SessionContext.hasActiveTransaction:()Z
            ifeq 2
         1: .line 463
            getstatic com.mongodb.WriteConcern.ACKNOWLEDGED:Lcom/mongodb/WriteConcern;
            areturn
         2: .line 465
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.mongodb.operation.MixedBulkWriteOperation.writeConcern:Lcom/mongodb/WriteConcern;
            areturn
        end local 1 // com.mongodb.session.SessionContext sessionContext
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Lcom/mongodb/operation/MixedBulkWriteOperation;
            0    3     1  sessionContext  Lcom/mongodb/session/SessionContext;
    MethodParameters:
                Name  Flags
      sessionContext  final

  private boolean shouldAcknowledge(com.mongodb.operation.BulkWriteBatch, com.mongodb.session.SessionContext);
    descriptor: (Lcom/mongodb/operation/BulkWriteBatch;Lcom/mongodb/session/SessionContext;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
        start local 1 // com.mongodb.operation.BulkWriteBatch batch
        start local 2 // com.mongodb.session.SessionContext sessionContext
         0: .line 470
            aload 0 /* this */
            getfield com.mongodb.operation.MixedBulkWriteOperation.ordered:Z
            ifeq 3
         1: .line 471
            aload 1 /* batch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.hasAnotherBatch:()Z
            ifne 2
            aload 0 /* this */
            aload 2 /* sessionContext */
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.getAppliedWriteConcern:(Lcom/mongodb/session/SessionContext;)Lcom/mongodb/WriteConcern;
            invokevirtual com.mongodb.WriteConcern.isAcknowledged:()Z
            ifne 2
            iconst_0
            goto 4
      StackMap locals:
      StackMap stack:
         2: iconst_1
            goto 4
         3: .line 472
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 2 /* sessionContext */
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.getAppliedWriteConcern:(Lcom/mongodb/session/SessionContext;)Lcom/mongodb/WriteConcern;
            invokevirtual com.mongodb.WriteConcern.isAcknowledged:()Z
         4: .line 470
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 2 // com.mongodb.session.SessionContext sessionContext
        end local 1 // com.mongodb.operation.BulkWriteBatch batch
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    5     0            this  Lcom/mongodb/operation/MixedBulkWriteOperation;
            0    5     1           batch  Lcom/mongodb/operation/BulkWriteBatch;
            0    5     2  sessionContext  Lcom/mongodb/session/SessionContext;
    MethodParameters:
                Name  Flags
      batch           final
      sessionContext  final

  private com.mongodb.async.SingleResultCallback<org.bson.BsonDocument> getCommandCallback(com.mongodb.binding.AsyncWriteBinding, com.mongodb.connection.AsyncConnection, com.mongodb.operation.BulkWriteBatch, boolean, boolean, com.mongodb.operation.OperationHelper$ConnectionReleasingWrappedCallback<com.mongodb.bulk.BulkWriteResult>);
    descriptor: (Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/BulkWriteBatch;ZZLcom/mongodb/operation/OperationHelper$ConnectionReleasingWrappedCallback;)Lcom/mongodb/async/SingleResultCallback;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=9, locals=7, args_size=7
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
        start local 1 // com.mongodb.binding.AsyncWriteBinding binding
        start local 2 // com.mongodb.connection.AsyncConnection connection
        start local 3 // com.mongodb.operation.BulkWriteBatch batch
        start local 4 // boolean retryWrites
        start local 5 // boolean isSecondAttempt
        start local 6 // com.mongodb.operation.OperationHelper$ConnectionReleasingWrappedCallback callback
         0: .line 479
            new com.mongodb.operation.MixedBulkWriteOperation$6
            dup
            aload 0 /* this */
            iload 5 /* isSecondAttempt */
            iload 4 /* retryWrites */
            aload 3 /* batch */
            aload 1 /* binding */
            aload 2 /* connection */
            aload 6 /* callback */
            invokespecial com.mongodb.operation.MixedBulkWriteOperation$6.<init>:(Lcom/mongodb/operation/MixedBulkWriteOperation;ZZLcom/mongodb/operation/BulkWriteBatch;Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/OperationHelper$ConnectionReleasingWrappedCallback;)V
            areturn
        end local 6 // com.mongodb.operation.OperationHelper$ConnectionReleasingWrappedCallback callback
        end local 5 // boolean isSecondAttempt
        end local 4 // boolean retryWrites
        end local 3 // com.mongodb.operation.BulkWriteBatch batch
        end local 2 // com.mongodb.connection.AsyncConnection connection
        end local 1 // com.mongodb.binding.AsyncWriteBinding binding
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    1     0             this  Lcom/mongodb/operation/MixedBulkWriteOperation;
            0    1     1          binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0    1     2       connection  Lcom/mongodb/connection/AsyncConnection;
            0    1     3            batch  Lcom/mongodb/operation/BulkWriteBatch;
            0    1     4      retryWrites  Z
            0    1     5  isSecondAttempt  Z
            0    1     6         callback  Lcom/mongodb/operation/OperationHelper$ConnectionReleasingWrappedCallback<Lcom/mongodb/bulk/BulkWriteResult;>;
    Signature: (Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/BulkWriteBatch;ZZLcom/mongodb/operation/OperationHelper$ConnectionReleasingWrappedCallback<Lcom/mongodb/bulk/BulkWriteResult;>;)Lcom/mongodb/async/SingleResultCallback<Lorg/bson/BsonDocument;>;
    MethodParameters:
                 Name  Flags
      binding          final
      connection       final
      batch            final
      retryWrites      final
      isSecondAttempt  final
      callback         final

  private void addBatchResult(org.bson.BsonDocument, com.mongodb.binding.AsyncWriteBinding, com.mongodb.connection.AsyncConnection, com.mongodb.operation.BulkWriteBatch, boolean, com.mongodb.operation.OperationHelper$ConnectionReleasingWrappedCallback<com.mongodb.bulk.BulkWriteResult>);
    descriptor: (Lorg/bson/BsonDocument;Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/BulkWriteBatch;ZLcom/mongodb/operation/OperationHelper$ConnectionReleasingWrappedCallback;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=8, args_size=7
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
        start local 1 // org.bson.BsonDocument result
        start local 2 // com.mongodb.binding.AsyncWriteBinding binding
        start local 3 // com.mongodb.connection.AsyncConnection connection
        start local 4 // com.mongodb.operation.BulkWriteBatch batch
        start local 5 // boolean retryWrites
        start local 6 // com.mongodb.operation.OperationHelper$ConnectionReleasingWrappedCallback callback
         0: .line 516
            aload 4 /* batch */
            aload 1 /* result */
            invokevirtual com.mongodb.operation.BulkWriteBatch.addResult:(Lorg/bson/BsonDocument;)V
         1: .line 517
            aload 4 /* batch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getNextBatch:()Lcom/mongodb/operation/BulkWriteBatch;
            astore 7 /* nextBatch */
        start local 7 // com.mongodb.operation.BulkWriteBatch nextBatch
         2: .line 518
            aload 7 /* nextBatch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.shouldProcessBatch:()Z
            ifeq 5
         3: .line 519
            aload 0 /* this */
            aload 2 /* binding */
            aload 3 /* connection */
            aload 7 /* nextBatch */
            iload 5 /* retryWrites */
            aload 6 /* callback */
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.executeBatchesAsync:(Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/BulkWriteBatch;ZLcom/mongodb/operation/OperationHelper$ConnectionReleasingWrappedCallback;)V
         4: .line 520
            goto 11
         5: .line 521
      StackMap locals: com.mongodb.operation.BulkWriteBatch
      StackMap stack:
            aload 4 /* batch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.hasErrors:()Z
            ifeq 10
         6: .line 522
            iload 5 /* retryWrites */
            ifeq 8
         7: .line 523
            aload 4 /* batch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getPayload:()Lcom/mongodb/connection/SplittablePayload;
            invokevirtual com.mongodb.connection.SplittablePayload.getPayloadType:()Lcom/mongodb/connection/SplittablePayload$Type;
            invokevirtual com.mongodb.connection.SplittablePayload$Type.toString:()Ljava/lang/String;
            aload 4 /* batch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getError:()Lcom/mongodb/MongoBulkWriteException;
            invokestatic com.mongodb.operation.CommandOperationHelper.logUnableToRetry:(Ljava/lang/String;Ljava/lang/Throwable;)V
         8: .line 525
      StackMap locals:
      StackMap stack:
            aload 6 /* callback */
            aconst_null
            aload 4 /* batch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getError:()Lcom/mongodb/MongoBulkWriteException;
            invokestatic com.mongodb.operation.CommandOperationHelper.transformWriteException:(Lcom/mongodb/MongoException;)Lcom/mongodb/MongoException;
            invokevirtual com.mongodb.operation.OperationHelper$ConnectionReleasingWrappedCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
         9: .line 526
            goto 11
        10: .line 527
      StackMap locals:
      StackMap stack:
            aload 6 /* callback */
            aload 4 /* batch */
            invokevirtual com.mongodb.operation.BulkWriteBatch.getResult:()Lcom/mongodb/bulk/BulkWriteResult;
            aconst_null
            invokevirtual com.mongodb.operation.OperationHelper$ConnectionReleasingWrappedCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
        11: .line 530
      StackMap locals:
      StackMap stack:
            return
        end local 7 // com.mongodb.operation.BulkWriteBatch nextBatch
        end local 6 // com.mongodb.operation.OperationHelper$ConnectionReleasingWrappedCallback callback
        end local 5 // boolean retryWrites
        end local 4 // com.mongodb.operation.BulkWriteBatch batch
        end local 3 // com.mongodb.connection.AsyncConnection connection
        end local 2 // com.mongodb.binding.AsyncWriteBinding binding
        end local 1 // org.bson.BsonDocument result
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0         this  Lcom/mongodb/operation/MixedBulkWriteOperation;
            0   12     1       result  Lorg/bson/BsonDocument;
            0   12     2      binding  Lcom/mongodb/binding/AsyncWriteBinding;
            0   12     3   connection  Lcom/mongodb/connection/AsyncConnection;
            0   12     4        batch  Lcom/mongodb/operation/BulkWriteBatch;
            0   12     5  retryWrites  Z
            0   12     6     callback  Lcom/mongodb/operation/OperationHelper$ConnectionReleasingWrappedCallback<Lcom/mongodb/bulk/BulkWriteResult;>;
            2   12     7    nextBatch  Lcom/mongodb/operation/BulkWriteBatch;
    Signature: (Lorg/bson/BsonDocument;Lcom/mongodb/binding/AsyncWriteBinding;Lcom/mongodb/connection/AsyncConnection;Lcom/mongodb/operation/BulkWriteBatch;ZLcom/mongodb/operation/OperationHelper$ConnectionReleasingWrappedCallback<Lcom/mongodb/bulk/BulkWriteResult;>;)V
    MethodParameters:
             Name  Flags
      result       final
      binding      final
      connection   final
      batch        final
      retryWrites  final
      callback     final

  private void validateWriteRequestsAndReleaseConnectionIfError(com.mongodb.binding.WriteBinding, com.mongodb.connection.Connection);
    descriptor: (Lcom/mongodb/binding/WriteBinding;Lcom/mongodb/connection/Connection;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.mongodb.operation.MixedBulkWriteOperation this
        start local 1 // com.mongodb.binding.WriteBinding binding
        start local 2 // com.mongodb.connection.Connection connection
         0: .line 534
            aload 2 /* connection */
            invokeinterface com.mongodb.connection.Connection.getDescription:()Lcom/mongodb/connection/ConnectionDescription;
            aload 0 /* this */
            getfield com.mongodb.operation.MixedBulkWriteOperation.bypassDocumentValidation:Ljava/lang/Boolean;
            aload 0 /* this */
            getfield com.mongodb.operation.MixedBulkWriteOperation.writeRequests:Ljava/util/List;
            aload 0 /* this */
            aload 1 /* binding */
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.getAppliedWriteConcern:(Lcom/mongodb/binding/WriteBinding;)Lcom/mongodb/WriteConcern;
            invokestatic com.mongodb.operation.OperationHelper.validateWriteRequests:(Lcom/mongodb/connection/ConnectionDescription;Ljava/lang/Boolean;Ljava/util/List;Lcom/mongodb/WriteConcern;)V
         1: .line 535
            goto 11
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
         2: astore 3 /* e */
        start local 3 // java.lang.IllegalArgumentException e
         3: .line 536
            aload 2 /* connection */
            invokeinterface com.mongodb.connection.Connection.release:()V
         4: .line 537
            aload 3 /* e */
            athrow
        end local 3 // java.lang.IllegalArgumentException e
         5: .line 538
      StackMap locals:
      StackMap stack: com.mongodb.MongoException
            astore 3 /* e */
        start local 3 // com.mongodb.MongoException e
         6: .line 539
            aload 2 /* connection */
            invokeinterface com.mongodb.connection.Connection.release:()V
         7: .line 540
            aload 3 /* e */
            athrow
        end local 3 // com.mongodb.MongoException e
         8: .line 541
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 3 /* t */
        start local 3 // java.lang.Throwable t
         9: .line 542
            aload 2 /* connection */
            invokeinterface com.mongodb.connection.Connection.release:()V
        10: .line 543
            aload 3 /* t */
            invokestatic com.mongodb.MongoException.fromThrowableNonNull:(Ljava/lang/Throwable;)Lcom/mongodb/MongoException;
            athrow
        end local 3 // java.lang.Throwable t
        11: .line 545
      StackMap locals:
      StackMap stack:
            return
        end local 2 // com.mongodb.connection.Connection connection
        end local 1 // com.mongodb.binding.WriteBinding binding
        end local 0 // com.mongodb.operation.MixedBulkWriteOperation this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Lcom/mongodb/operation/MixedBulkWriteOperation;
            0   12     1     binding  Lcom/mongodb/binding/WriteBinding;
            0   12     2  connection  Lcom/mongodb/connection/Connection;
            3    5     3           e  Ljava/lang/IllegalArgumentException;
            6    8     3           e  Lcom/mongodb/MongoException;
            9   11     3           t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.IllegalArgumentException
           0     1       5  Class com.mongodb.MongoException
           0     1       8  Class java.lang.Throwable
    MethodParameters:
            Name  Flags
      binding     final
      connection  final

  public java.lang.Object execute(com.mongodb.binding.WriteBinding);
    descriptor: (Lcom/mongodb/binding/WriteBinding;)Ljava/lang/Object;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            invokevirtual com.mongodb.operation.MixedBulkWriteOperation.execute:(Lcom/mongodb/binding/WriteBinding;)Lcom/mongodb/bulk/BulkWriteResult;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Lcom/mongodb/operation/AsyncWriteOperation<Lcom/mongodb/bulk/BulkWriteResult;>;Lcom/mongodb/operation/WriteOperation<Lcom/mongodb/bulk/BulkWriteResult;>;
SourceFile: "MixedBulkWriteOperation.java"
NestMembers:
  com.mongodb.operation.MixedBulkWriteOperation$1  com.mongodb.operation.MixedBulkWriteOperation$2  com.mongodb.operation.MixedBulkWriteOperation$2$1  com.mongodb.operation.MixedBulkWriteOperation$3  com.mongodb.operation.MixedBulkWriteOperation$4  com.mongodb.operation.MixedBulkWriteOperation$4$1  com.mongodb.operation.MixedBulkWriteOperation$5  com.mongodb.operation.MixedBulkWriteOperation$6
InnerClasses:
  public final Type = com.mongodb.bulk.WriteRequest$Type of com.mongodb.bulk.WriteRequest
  public final Type = com.mongodb.connection.SplittablePayload$Type of com.mongodb.connection.SplittablePayload
  com.mongodb.operation.MixedBulkWriteOperation$1
  com.mongodb.operation.MixedBulkWriteOperation$2
  com.mongodb.operation.MixedBulkWriteOperation$3
  com.mongodb.operation.MixedBulkWriteOperation$4
  com.mongodb.operation.MixedBulkWriteOperation$5
  com.mongodb.operation.MixedBulkWriteOperation$6
  abstract AsyncCallableWithConnectionAndSource = com.mongodb.operation.OperationHelper$AsyncCallableWithConnectionAndSource of com.mongodb.operation.OperationHelper
  abstract CallableWithConnectionAndSource = com.mongodb.operation.OperationHelper$CallableWithConnectionAndSource of com.mongodb.operation.OperationHelper
  ConnectionReleasingWrappedCallback = com.mongodb.operation.OperationHelper$ConnectionReleasingWrappedCallback of com.mongodb.operation.OperationHelper
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()