class com.mongodb.async.client.ClientSessionHelper
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.mongodb.async.client.ClientSessionHelper
super_class: java.lang.Object
{
private final com.mongodb.async.client.MongoClientImpl mongoClient;
descriptor: Lcom/mongodb/async/client/MongoClientImpl;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.internal.session.ServerSessionPool serverSessionPool;
descriptor: Lcom/mongodb/internal/session/ServerSessionPool;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(com.mongodb.async.client.MongoClientImpl, com.mongodb.internal.session.ServerSessionPool);
descriptor: (Lcom/mongodb/async/client/MongoClientImpl;Lcom/mongodb/internal/session/ServerSessionPool;)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.ClientSessionHelper.mongoClient:Lcom/mongodb/async/client/MongoClientImpl;
2: aload 0
aload 2
putfield com.mongodb.async.client.ClientSessionHelper.serverSessionPool:Lcom/mongodb/internal/session/ServerSessionPool;
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/ClientSessionHelper;
0 4 1 mongoClient Lcom/mongodb/async/client/MongoClientImpl;
0 4 2 serverSessionPool Lcom/mongodb/internal/session/ServerSessionPool;
MethodParameters:
Name Flags
mongoClient final
serverSessionPool final
void withClientSession(com.mongodb.async.client.ClientSession, com.mongodb.async.client.OperationExecutor, com.mongodb.async.SingleResultCallback<com.mongodb.async.client.ClientSession>);
descriptor: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/client/OperationExecutor;Lcom/mongodb/async/SingleResultCallback;)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
ifnull 6
1: ldc "ClientSession from same MongoClient"
aload 1
invokeinterface com.mongodb.async.client.ClientSession.getOriginator:()Ljava/lang/Object;
aload 0
getfield com.mongodb.async.client.ClientSessionHelper.mongoClient:Lcom/mongodb/async/client/MongoClientImpl;
if_acmpne 2
iconst_1
goto 3
StackMap locals:
StackMap stack: java.lang.String
2: iconst_0
StackMap locals: com.mongodb.async.client.ClientSessionHelper com.mongodb.async.client.ClientSession com.mongodb.async.client.OperationExecutor com.mongodb.async.SingleResultCallback
StackMap stack: java.lang.String int
3: invokestatic com.mongodb.assertions.Assertions.isTrue:(Ljava/lang/String;Z)V
4: aload 3
aload 1
aconst_null
invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
5: goto 7
6: StackMap locals:
StackMap stack:
aload 0
invokestatic com.mongodb.ClientSessionOptions.builder:()Lcom/mongodb/ClientSessionOptions$Builder;
iconst_0
invokevirtual com.mongodb.ClientSessionOptions$Builder.causallyConsistent:(Z)Lcom/mongodb/ClientSessionOptions$Builder;
invokevirtual com.mongodb.ClientSessionOptions$Builder.build:()Lcom/mongodb/ClientSessionOptions;
aload 2
aload 3
invokevirtual com.mongodb.async.client.ClientSessionHelper.createClientSession:(Lcom/mongodb/ClientSessionOptions;Lcom/mongodb/async/client/OperationExecutor;Lcom/mongodb/async/SingleResultCallback;)V
7: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/mongodb/async/client/ClientSessionHelper;
0 8 1 clientSessionFromOperation Lcom/mongodb/async/client/ClientSession;
0 8 2 executor Lcom/mongodb/async/client/OperationExecutor;
0 8 3 callback Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/async/client/ClientSession;>;
Signature: (Lcom/mongodb/async/client/ClientSession;Lcom/mongodb/async/client/OperationExecutor;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/async/client/ClientSession;>;)V
RuntimeVisibleParameterAnnotations:
0:
com.mongodb.lang.Nullable()
1:
2:
MethodParameters:
Name Flags
clientSessionFromOperation final
executor final
callback final
void createClientSession(com.mongodb.ClientSessionOptions, com.mongodb.async.client.OperationExecutor, com.mongodb.async.SingleResultCallback<com.mongodb.async.client.ClientSession>);
descriptor: (Lcom/mongodb/ClientSessionOptions;Lcom/mongodb/async/client/OperationExecutor;Lcom/mongodb/async/SingleResultCallback;)V
flags: (0x0000)
Code:
stack=8, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.mongodb.async.client.ClientSessionHelper.mongoClient:Lcom/mongodb/async/client/MongoClientImpl;
invokevirtual com.mongodb.async.client.MongoClientImpl.getSettings:()Lcom/mongodb/async/client/MongoClientSettings;
invokevirtual com.mongodb.async.client.MongoClientSettings.getCredentialList:()Ljava/util/List;
invokeinterface java.util.List.size:()I
iconst_1
if_icmple 3
1: aload 3
aconst_null
aconst_null
invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
2: goto 12
3: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.async.client.ClientSessionHelper.mongoClient:Lcom/mongodb/async/client/MongoClientImpl;
invokevirtual com.mongodb.async.client.MongoClientImpl.getCluster:()Lcom/mongodb/connection/Cluster;
invokeinterface com.mongodb.connection.Cluster.getCurrentDescription:()Lcom/mongodb/connection/ClusterDescription;
astore 4
start local 4 4: aload 0
aload 4
invokevirtual com.mongodb.async.client.ClientSessionHelper.getServerDescriptionListToConsiderForSessionSupport:(Lcom/mongodb/connection/ClusterDescription;)Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifne 9
5: aload 4
invokevirtual com.mongodb.connection.ClusterDescription.getLogicalSessionTimeoutMinutes:()Ljava/lang/Integer;
ifnull 9
6: aload 4
invokevirtual com.mongodb.connection.ClusterDescription.getType:()Lcom/mongodb/connection/ClusterType;
getstatic com.mongodb.connection.ClusterType.STANDALONE:Lcom/mongodb/connection/ClusterType;
if_acmpeq 9
7: aload 3
aload 0
aload 1
aload 2
invokevirtual com.mongodb.async.client.ClientSessionHelper.createClientSession:(Lcom/mongodb/ClientSessionOptions;Lcom/mongodb/async/client/OperationExecutor;)Lcom/mongodb/async/client/ClientSession;
aconst_null
invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
8: goto 12
9: StackMap locals: com.mongodb.connection.ClusterDescription
StackMap stack:
aload 0
getfield com.mongodb.async.client.ClientSessionHelper.mongoClient:Lcom/mongodb/async/client/MongoClientImpl;
invokevirtual com.mongodb.async.client.MongoClientImpl.getCluster:()Lcom/mongodb/connection/Cluster;
new com.mongodb.async.client.ClientSessionHelper$1
dup
aload 0
invokespecial com.mongodb.async.client.ClientSessionHelper$1.<init>:(Lcom/mongodb/async/client/ClientSessionHelper;)V
10: new com.mongodb.async.client.ClientSessionHelper$2
dup
aload 0
aload 3
aload 1
aload 2
invokespecial com.mongodb.async.client.ClientSessionHelper$2.<init>:(Lcom/mongodb/async/client/ClientSessionHelper;Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/ClientSessionOptions;Lcom/mongodb/async/client/OperationExecutor;)V
11: invokeinterface com.mongodb.connection.Cluster.selectServerAsync:(Lcom/mongodb/selector/ServerSelector;Lcom/mongodb/async/SingleResultCallback;)V
end local 4 12: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/mongodb/async/client/ClientSessionHelper;
0 13 1 options Lcom/mongodb/ClientSessionOptions;
0 13 2 executor Lcom/mongodb/async/client/OperationExecutor;
0 13 3 callback Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/async/client/ClientSession;>;
4 12 4 clusterDescription Lcom/mongodb/connection/ClusterDescription;
Signature: (Lcom/mongodb/ClientSessionOptions;Lcom/mongodb/async/client/OperationExecutor;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/async/client/ClientSession;>;)V
MethodParameters:
Name Flags
options final
executor final
callback final
private com.mongodb.async.client.ClientSession createClientSession(com.mongodb.ClientSessionOptions, com.mongodb.async.client.OperationExecutor);
descriptor: (Lcom/mongodb/ClientSessionOptions;Lcom/mongodb/async/client/OperationExecutor;)Lcom/mongodb/async/client/ClientSession;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic com.mongodb.ClientSessionOptions.builder:(Lcom/mongodb/ClientSessionOptions;)Lcom/mongodb/ClientSessionOptions$Builder;
1: aload 1
invokevirtual com.mongodb.ClientSessionOptions.getDefaultTransactionOptions:()Lcom/mongodb/TransactionOptions;
2: invokestatic com.mongodb.TransactionOptions.builder:()Lcom/mongodb/TransactionOptions$Builder;
3: aload 0
getfield com.mongodb.async.client.ClientSessionHelper.mongoClient:Lcom/mongodb/async/client/MongoClientImpl;
invokevirtual com.mongodb.async.client.MongoClientImpl.getSettings:()Lcom/mongodb/async/client/MongoClientSettings;
invokevirtual com.mongodb.async.client.MongoClientSettings.getReadConcern:()Lcom/mongodb/ReadConcern;
invokevirtual com.mongodb.TransactionOptions$Builder.readConcern:(Lcom/mongodb/ReadConcern;)Lcom/mongodb/TransactionOptions$Builder;
4: aload 0
getfield com.mongodb.async.client.ClientSessionHelper.mongoClient:Lcom/mongodb/async/client/MongoClientImpl;
invokevirtual com.mongodb.async.client.MongoClientImpl.getSettings:()Lcom/mongodb/async/client/MongoClientSettings;
invokevirtual com.mongodb.async.client.MongoClientSettings.getWriteConcern:()Lcom/mongodb/WriteConcern;
invokevirtual com.mongodb.TransactionOptions$Builder.writeConcern:(Lcom/mongodb/WriteConcern;)Lcom/mongodb/TransactionOptions$Builder;
5: aload 0
getfield com.mongodb.async.client.ClientSessionHelper.mongoClient:Lcom/mongodb/async/client/MongoClientImpl;
invokevirtual com.mongodb.async.client.MongoClientImpl.getSettings:()Lcom/mongodb/async/client/MongoClientSettings;
invokevirtual com.mongodb.async.client.MongoClientSettings.getReadPreference:()Lcom/mongodb/ReadPreference;
invokevirtual com.mongodb.TransactionOptions$Builder.readPreference:(Lcom/mongodb/ReadPreference;)Lcom/mongodb/TransactionOptions$Builder;
6: invokevirtual com.mongodb.TransactionOptions$Builder.build:()Lcom/mongodb/TransactionOptions;
7: invokestatic com.mongodb.TransactionOptions.merge:(Lcom/mongodb/TransactionOptions;Lcom/mongodb/TransactionOptions;)Lcom/mongodb/TransactionOptions;
8: invokevirtual com.mongodb.ClientSessionOptions$Builder.defaultTransactionOptions:(Lcom/mongodb/TransactionOptions;)Lcom/mongodb/ClientSessionOptions$Builder;
9: invokevirtual com.mongodb.ClientSessionOptions$Builder.build:()Lcom/mongodb/ClientSessionOptions;
10: astore 3
start local 3 11: new com.mongodb.async.client.ClientSessionImpl
dup
aload 0
getfield com.mongodb.async.client.ClientSessionHelper.serverSessionPool:Lcom/mongodb/internal/session/ServerSessionPool;
aload 0
getfield com.mongodb.async.client.ClientSessionHelper.mongoClient:Lcom/mongodb/async/client/MongoClientImpl;
aload 3
aload 2
invokespecial com.mongodb.async.client.ClientSessionImpl.<init>:(Lcom/mongodb/internal/session/ServerSessionPool;Lcom/mongodb/async/client/MongoClient;Lcom/mongodb/ClientSessionOptions;Lcom/mongodb/async/client/OperationExecutor;)V
areturn
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/ClientSessionHelper;
0 12 1 options Lcom/mongodb/ClientSessionOptions;
0 12 2 executor Lcom/mongodb/async/client/OperationExecutor;
11 12 3 mergedOptions Lcom/mongodb/ClientSessionOptions;
MethodParameters:
Name Flags
options final
executor final
private java.util.List<com.mongodb.connection.ServerDescription> getServerDescriptionListToConsiderForSessionSupport(com.mongodb.connection.ClusterDescription);
descriptor: (Lcom/mongodb/connection/ClusterDescription;)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.mongodb.connection.ClusterDescription.getConnectionMode:()Lcom/mongodb/connection/ClusterConnectionMode;
getstatic com.mongodb.connection.ClusterConnectionMode.SINGLE:Lcom/mongodb/connection/ClusterConnectionMode;
if_acmpne 2
1: aload 1
invokevirtual com.mongodb.connection.ClusterDescription.getAny:()Ljava/util/List;
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.mongodb.connection.ClusterDescription.getAnyPrimaryOrSecondary:()Ljava/util/List;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/mongodb/async/client/ClientSessionHelper;
0 3 1 clusterDescription Lcom/mongodb/connection/ClusterDescription;
Signature: (Lcom/mongodb/connection/ClusterDescription;)Ljava/util/List<Lcom/mongodb/connection/ServerDescription;>;
MethodParameters:
Name Flags
clusterDescription final
}
SourceFile: "ClientSessionHelper.java"
NestMembers:
com.mongodb.async.client.ClientSessionHelper$1 com.mongodb.async.client.ClientSessionHelper$2
InnerClasses:
public final Builder = com.mongodb.ClientSessionOptions$Builder of com.mongodb.ClientSessionOptions
public final Builder = com.mongodb.TransactionOptions$Builder of com.mongodb.TransactionOptions
com.mongodb.async.client.ClientSessionHelper$1
com.mongodb.async.client.ClientSessionHelper$2