class com.mongodb.async.client.OperationExecutorImpl implements com.mongodb.async.client.OperationExecutor
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.mongodb.async.client.OperationExecutorImpl
super_class: java.lang.Object
{
private static final com.mongodb.diagnostics.logging.Logger LOGGER;
descriptor: Lcom/mongodb/diagnostics/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final com.mongodb.async.client.MongoClientImpl mongoClient;
descriptor: Lcom/mongodb/async/client/MongoClientImpl;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.async.client.ClientSessionHelper clientSessionHelper;
descriptor: Lcom/mongodb/async/client/ClientSessionHelper;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "client"
invokestatic com.mongodb.diagnostics.logging.Loggers.getLogger:(Ljava/lang/String;)Lcom/mongodb/diagnostics/logging/Logger;
putstatic com.mongodb.async.client.OperationExecutorImpl.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(com.mongodb.async.client.MongoClientImpl, com.mongodb.async.client.ClientSessionHelper);
descriptor: (Lcom/mongodb/async/client/MongoClientImpl;Lcom/mongodb/async/client/ClientSessionHelper;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield com.mongodb.async.client.OperationExecutorImpl.mongoClient:Lcom/mongodb/async/client/MongoClientImpl;
2: aload 0
aload 2
putfield com.mongodb.async.client.OperationExecutorImpl.clientSessionHelper:Lcom/mongodb/async/client/ClientSessionHelper;
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/mongodb/async/client/OperationExecutorImpl;
0 4 1 mongoClient Lcom/mongodb/async/client/MongoClientImpl;
0 4 2 clientSessionHelper Lcom/mongodb/async/client/ClientSessionHelper;
MethodParameters:
Name Flags
mongoClient final
clientSessionHelper final
public <T> void execute(com.mongodb.operation.AsyncReadOperation<T>, com.mongodb.ReadPreference, com.mongodb.ReadConcern, com.mongodb.async.SingleResultCallback<T>);
descriptor: (Lcom/mongodb/operation/AsyncReadOperation;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/SingleResultCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
aload 3
aconst_null
aload 4
invokevirtual com.mongodb.async.client.OperationExecutorImpl.execute:(Lcom/mongodb/operation/AsyncReadOperation;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/mongodb/async/client/OperationExecutorImpl;
0 2 1 operation Lcom/mongodb/operation/AsyncReadOperation<TT;>;
0 2 2 readPreference Lcom/mongodb/ReadPreference;
0 2 3 readConcern Lcom/mongodb/ReadConcern;
0 2 4 callback Lcom/mongodb/async/SingleResultCallback<TT;>;
Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/operation/AsyncReadOperation<TT;>;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
MethodParameters:
Name Flags
operation final
readPreference final
readConcern final
callback final
public <T> void execute(com.mongodb.operation.AsyncReadOperation<T>, com.mongodb.ReadPreference, com.mongodb.ReadConcern, com.mongodb.async.client.ClientSession, com.mongodb.async.SingleResultCallback<T>);
descriptor: (Lcom/mongodb/operation/AsyncReadOperation;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=7, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: ldc "operation"
aload 1
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: ldc "readPreference"
aload 2
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: ldc "callback"
aload 5
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 5
getstatic com.mongodb.async.client.OperationExecutorImpl.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 6
start local 6 4: aload 0
getfield com.mongodb.async.client.OperationExecutorImpl.clientSessionHelper:Lcom/mongodb/async/client/ClientSessionHelper;
aload 4
aload 0
new com.mongodb.async.client.OperationExecutorImpl$1
dup
aload 0
aload 6
aload 2
aload 3
aload 4
aload 1
invokespecial com.mongodb.async.client.OperationExecutorImpl$1.<init>:(Lcom/mongodb/async/client/OperationExecutorImpl;Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/operation/AsyncReadOperation;)V
invokevirtual com.mongodb.async.client.ClientSessionHelper.withClientSession:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/client/OperationExecutor;Lcom/mongodb/async/SingleResultCallback;)V
5: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/mongodb/async/client/OperationExecutorImpl;
0 6 1 operation Lcom/mongodb/operation/AsyncReadOperation<TT;>;
0 6 2 readPreference Lcom/mongodb/ReadPreference;
0 6 3 readConcern Lcom/mongodb/ReadConcern;
0 6 4 session Lcom/mongodb/async/client/ClientSession;
0 6 5 callback Lcom/mongodb/async/SingleResultCallback<TT;>;
4 6 6 errHandlingCallback Lcom/mongodb/async/SingleResultCallback<TT;>;
Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/operation/AsyncReadOperation<TT;>;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
RuntimeVisibleParameterAnnotations:
0:
1:
2:
3:
com.mongodb.lang.Nullable()
4:
MethodParameters:
Name Flags
operation final
readPreference final
readConcern final
session final
callback final
public <T> void execute(com.mongodb.operation.AsyncWriteOperation<T>, com.mongodb.ReadConcern, com.mongodb.async.SingleResultCallback<T>);
descriptor: (Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/SingleResultCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aconst_null
aload 3
invokevirtual com.mongodb.async.client.OperationExecutorImpl.execute:(Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
1: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/mongodb/async/client/OperationExecutorImpl;
0 2 1 operation Lcom/mongodb/operation/AsyncWriteOperation<TT;>;
0 2 2 readConcern Lcom/mongodb/ReadConcern;
0 2 3 callback Lcom/mongodb/async/SingleResultCallback<TT;>;
Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/operation/AsyncWriteOperation<TT;>;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
MethodParameters:
Name Flags
operation final
readConcern final
callback final
public <T> void execute(com.mongodb.operation.AsyncWriteOperation<T>, com.mongodb.ReadConcern, com.mongodb.async.client.ClientSession, com.mongodb.async.SingleResultCallback<T>);
descriptor: (Lcom/mongodb/operation/AsyncWriteOperation;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: ldc "operation"
aload 1
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: ldc "callback"
aload 4
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 4
getstatic com.mongodb.async.client.OperationExecutorImpl.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 5
start local 5 3: aload 0
getfield com.mongodb.async.client.OperationExecutorImpl.clientSessionHelper:Lcom/mongodb/async/client/ClientSessionHelper;
aload 3
aload 0
new com.mongodb.async.client.OperationExecutorImpl$2
dup
aload 0
aload 5
aload 2
aload 3
aload 1
invokespecial com.mongodb.async.client.OperationExecutorImpl$2.<init>:(Lcom/mongodb/async/client/OperationExecutorImpl;Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/operation/AsyncWriteOperation;)V
invokevirtual com.mongodb.async.client.ClientSessionHelper.withClientSession:(Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/client/OperationExecutor;Lcom/mongodb/async/SingleResultCallback;)V
4: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/mongodb/async/client/OperationExecutorImpl;
0 5 1 operation Lcom/mongodb/operation/AsyncWriteOperation<TT;>;
0 5 2 readConcern Lcom/mongodb/ReadConcern;
0 5 3 session Lcom/mongodb/async/client/ClientSession;
0 5 4 callback Lcom/mongodb/async/SingleResultCallback<TT;>;
3 5 5 errHandlingCallback Lcom/mongodb/async/SingleResultCallback<TT;>;
Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/operation/AsyncWriteOperation<TT;>;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
RuntimeVisibleParameterAnnotations:
0:
1:
2:
com.mongodb.lang.Nullable()
3:
MethodParameters:
Name Flags
operation final
readConcern final
session final
callback final
private void labelException(java.lang.Throwable, com.mongodb.async.client.ClientSession);
descriptor: (Ljava/lang/Throwable;Lcom/mongodb/async/client/ClientSession;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnull 5
aload 2
invokeinterface com.mongodb.async.client.ClientSession.hasActiveTransaction:()Z
ifeq 5
1: aload 1
instanceof com.mongodb.MongoSocketException
ifne 3
aload 1
instanceof com.mongodb.MongoTimeoutException
ifne 3
2: aload 1
instanceof com.mongodb.MongoQueryException
ifeq 5
aload 1
checkcast com.mongodb.MongoQueryException
invokevirtual com.mongodb.MongoQueryException.getErrorCode:()I
bipush 91
if_icmpne 5
3: StackMap locals:
StackMap stack:
aload 1
checkcast com.mongodb.MongoException
ldc "UnknownTransactionCommitResult"
invokevirtual com.mongodb.MongoException.hasErrorLabel:(Ljava/lang/String;)Z
ifne 5
4: aload 1
checkcast com.mongodb.MongoException
ldc "TransientTransactionError"
invokevirtual com.mongodb.MongoException.addLabel:(Ljava/lang/String;)V
5: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/mongodb/async/client/OperationExecutorImpl;
0 6 1 t Ljava/lang/Throwable;
0 6 2 session Lcom/mongodb/async/client/ClientSession;
MethodParameters:
Name Flags
t final
session final
private void unpinServerAddressOnTransientTransactionError(com.mongodb.async.client.ClientSession, java.lang.Throwable);
descriptor: (Lcom/mongodb/async/client/ClientSession;Ljava/lang/Throwable;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnull 3
aload 2
ifnull 3
aload 2
instanceof com.mongodb.MongoException
ifeq 3
1: aload 2
checkcast com.mongodb.MongoException
ldc "TransientTransactionError"
invokevirtual com.mongodb.MongoException.hasErrorLabel:(Ljava/lang/String;)Z
ifeq 3
2: aload 1
aconst_null
invokeinterface com.mongodb.async.client.ClientSession.setPinnedServerAddress:(Lcom/mongodb/ServerAddress;)V
3: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/mongodb/async/client/OperationExecutorImpl;
0 4 1 session Lcom/mongodb/async/client/ClientSession;
0 4 2 throwable Ljava/lang/Throwable;
RuntimeVisibleParameterAnnotations:
0:
com.mongodb.lang.Nullable()
1:
MethodParameters:
Name Flags
session final
throwable final
private void getReadWriteBinding(com.mongodb.ReadPreference, com.mongodb.ReadConcern, com.mongodb.async.client.ClientSession, boolean, com.mongodb.async.SingleResultCallback<com.mongodb.binding.AsyncReadWriteBinding>);
descriptor: (Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;ZLcom/mongodb/async/SingleResultCallback;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: ldc "readPreference"
aload 1
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: new com.mongodb.binding.AsyncClusterBinding
dup
aload 0
getfield com.mongodb.async.client.OperationExecutorImpl.mongoClient:Lcom/mongodb/async/client/MongoClientImpl;
invokevirtual com.mongodb.async.client.MongoClientImpl.getCluster:()Lcom/mongodb/connection/Cluster;
2: aload 0
aload 1
aload 3
invokevirtual com.mongodb.async.client.OperationExecutorImpl.getReadPreferenceForBinding:(Lcom/mongodb/ReadPreference;Lcom/mongodb/async/client/ClientSession;)Lcom/mongodb/ReadPreference;
aload 2
3: invokespecial com.mongodb.binding.AsyncClusterBinding.<init>:(Lcom/mongodb/connection/Cluster;Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;)V
astore 6
start local 6 4: aload 0
getfield com.mongodb.async.client.OperationExecutorImpl.mongoClient:Lcom/mongodb/async/client/MongoClientImpl;
invokevirtual com.mongodb.async.client.MongoClientImpl.getCrypt:()Lcom/mongodb/async/client/internal/Crypt;
astore 7
start local 7 5: aload 7
ifnull 7
6: new com.mongodb.async.client.internal.AsyncCryptBinding
dup
aload 6
aload 7
invokespecial com.mongodb.async.client.internal.AsyncCryptBinding.<init>:(Lcom/mongodb/internal/binding/AsyncClusterAwareReadWriteBinding;Lcom/mongodb/async/client/internal/Crypt;)V
astore 6
7: StackMap locals: com.mongodb.internal.binding.AsyncClusterAwareReadWriteBinding com.mongodb.async.client.internal.Crypt
StackMap stack:
aload 3
ifnull 10
8: aload 5
new com.mongodb.async.client.ClientSessionBinding
dup
aload 3
iload 4
aload 6
invokespecial com.mongodb.async.client.ClientSessionBinding.<init>:(Lcom/mongodb/async/client/ClientSession;ZLcom/mongodb/internal/binding/AsyncClusterAwareReadWriteBinding;)V
aconst_null
invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
9: goto 11
10: StackMap locals:
StackMap stack:
aload 5
aload 6
aconst_null
invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
11: StackMap locals:
StackMap stack:
return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/mongodb/async/client/OperationExecutorImpl;
0 12 1 readPreference Lcom/mongodb/ReadPreference;
0 12 2 readConcern Lcom/mongodb/ReadConcern;
0 12 3 session Lcom/mongodb/async/client/ClientSession;
0 12 4 ownsSession Z
0 12 5 callback Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/binding/AsyncReadWriteBinding;>;
4 12 6 readWriteBinding Lcom/mongodb/internal/binding/AsyncClusterAwareReadWriteBinding;
5 12 7 crypt Lcom/mongodb/async/client/internal/Crypt;
Signature: (Lcom/mongodb/ReadPreference;Lcom/mongodb/ReadConcern;Lcom/mongodb/async/client/ClientSession;ZLcom/mongodb/async/SingleResultCallback<Lcom/mongodb/binding/AsyncReadWriteBinding;>;)V
RuntimeVisibleParameterAnnotations:
0:
1:
2:
com.mongodb.lang.Nullable()
3:
4:
MethodParameters:
Name Flags
readPreference final
readConcern final
session final
ownsSession final
callback final
private com.mongodb.ReadPreference getReadPreferenceForBinding(com.mongodb.ReadPreference, com.mongodb.async.client.ClientSession);
descriptor: (Lcom/mongodb/ReadPreference;Lcom/mongodb/async/client/ClientSession;)Lcom/mongodb/ReadPreference;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 2
1: aload 1
areturn
2: StackMap locals:
StackMap stack:
aload 2
invokeinterface com.mongodb.async.client.ClientSession.hasActiveTransaction:()Z
ifeq 7
3: aload 2
invokeinterface com.mongodb.async.client.ClientSession.getTransactionOptions:()Lcom/mongodb/TransactionOptions;
invokevirtual com.mongodb.TransactionOptions.getReadPreference:()Lcom/mongodb/ReadPreference;
astore 3
start local 3 4: aload 3
ifnonnull 6
5: new com.mongodb.MongoInternalException
dup
ldc "Invariant violated. Transaction options read preference can not be null"
invokespecial com.mongodb.MongoInternalException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals: com.mongodb.ReadPreference
StackMap stack:
aload 3
areturn
end local 3 7: StackMap locals:
StackMap stack:
aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/mongodb/async/client/OperationExecutorImpl;
0 8 1 readPreference Lcom/mongodb/ReadPreference;
0 8 2 session Lcom/mongodb/async/client/ClientSession;
4 7 3 readPreferenceForBinding Lcom/mongodb/ReadPreference;
RuntimeVisibleParameterAnnotations:
0:
1:
com.mongodb.lang.Nullable()
MethodParameters:
Name Flags
readPreference final
session final
}
SourceFile: "OperationExecutorImpl.java"
NestMembers:
com.mongodb.async.client.OperationExecutorImpl$1 com.mongodb.async.client.OperationExecutorImpl$1$1 com.mongodb.async.client.OperationExecutorImpl$1$1$1 com.mongodb.async.client.OperationExecutorImpl$2 com.mongodb.async.client.OperationExecutorImpl$2$1 com.mongodb.async.client.OperationExecutorImpl$2$1$1
InnerClasses:
com.mongodb.async.client.OperationExecutorImpl$1
com.mongodb.async.client.OperationExecutorImpl$2