class com.mongodb.async.client.ClientSessionBinding implements com.mongodb.binding.AsyncReadWriteBinding
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.mongodb.async.client.ClientSessionBinding
super_class: java.lang.Object
{
private final com.mongodb.internal.binding.AsyncClusterAwareReadWriteBinding wrapped;
descriptor: Lcom/mongodb/internal/binding/AsyncClusterAwareReadWriteBinding;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.async.client.ClientSession session;
descriptor: Lcom/mongodb/async/client/ClientSession;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean ownsSession;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.internal.session.ClientSessionContext sessionContext;
descriptor: Lcom/mongodb/internal/session/ClientSessionContext;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(com.mongodb.async.client.ClientSession, boolean, com.mongodb.internal.binding.AsyncClusterAwareReadWriteBinding);
descriptor: (Lcom/mongodb/async/client/ClientSession;ZLcom/mongodb/internal/binding/AsyncClusterAwareReadWriteBinding;)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
ldc "wrapped"
aload 3
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.mongodb.internal.binding.AsyncClusterAwareReadWriteBinding
putfield com.mongodb.async.client.ClientSessionBinding.wrapped:Lcom/mongodb/internal/binding/AsyncClusterAwareReadWriteBinding;
2: aload 0
iload 2
putfield com.mongodb.async.client.ClientSessionBinding.ownsSession:Z
3: aload 0
ldc "session"
aload 1
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.mongodb.async.client.ClientSession
putfield com.mongodb.async.client.ClientSessionBinding.session:Lcom/mongodb/async/client/ClientSession;
4: aload 0
new com.mongodb.async.client.ClientSessionBinding$AsyncClientSessionContext
dup
aload 0
aload 1
invokespecial com.mongodb.async.client.ClientSessionBinding$AsyncClientSessionContext.<init>:(Lcom/mongodb/async/client/ClientSessionBinding;Lcom/mongodb/async/client/ClientSession;)V
putfield com.mongodb.async.client.ClientSessionBinding.sessionContext:Lcom/mongodb/internal/session/ClientSessionContext;
5: return
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/ClientSessionBinding;
0 6 1 session Lcom/mongodb/async/client/ClientSession;
0 6 2 ownsSession Z
0 6 3 wrapped Lcom/mongodb/internal/binding/AsyncClusterAwareReadWriteBinding;
MethodParameters:
Name Flags
session final
ownsSession final
wrapped final
public com.mongodb.ReadPreference getReadPreference();
descriptor: ()Lcom/mongodb/ReadPreference;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.async.client.ClientSessionBinding.wrapped:Lcom/mongodb/internal/binding/AsyncClusterAwareReadWriteBinding;
invokeinterface com.mongodb.internal.binding.AsyncClusterAwareReadWriteBinding.getReadPreference:()Lcom/mongodb/ReadPreference;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/async/client/ClientSessionBinding;
public void getReadConnectionSource(com.mongodb.async.SingleResultCallback<com.mongodb.binding.AsyncConnectionSource>);
descriptor: (Lcom/mongodb/async/SingleResultCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.mongodb.async.client.ClientSessionBinding.wrapped:Lcom/mongodb/internal/binding/AsyncClusterAwareReadWriteBinding;
new com.mongodb.async.client.ClientSessionBinding$1
dup
aload 0
aload 1
invokespecial com.mongodb.async.client.ClientSessionBinding$1.<init>:(Lcom/mongodb/async/client/ClientSessionBinding;Lcom/mongodb/async/SingleResultCallback;)V
invokeinterface com.mongodb.internal.binding.AsyncClusterAwareReadWriteBinding.getReadConnectionSource:(Lcom/mongodb/async/SingleResultCallback;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/mongodb/async/client/ClientSessionBinding;
0 2 1 callback Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/binding/AsyncConnectionSource;>;
Signature: (Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/binding/AsyncConnectionSource;>;)V
MethodParameters:
Name Flags
callback final
public void getWriteConnectionSource(com.mongodb.async.SingleResultCallback<com.mongodb.binding.AsyncConnectionSource>);
descriptor: (Lcom/mongodb/async/SingleResultCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.mongodb.async.client.ClientSessionBinding.wrapped:Lcom/mongodb/internal/binding/AsyncClusterAwareReadWriteBinding;
new com.mongodb.async.client.ClientSessionBinding$2
dup
aload 0
aload 1
invokespecial com.mongodb.async.client.ClientSessionBinding$2.<init>:(Lcom/mongodb/async/client/ClientSessionBinding;Lcom/mongodb/async/SingleResultCallback;)V
invokeinterface com.mongodb.internal.binding.AsyncClusterAwareReadWriteBinding.getWriteConnectionSource:(Lcom/mongodb/async/SingleResultCallback;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/mongodb/async/client/ClientSessionBinding;
0 2 1 callback Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/binding/AsyncConnectionSource;>;
Signature: (Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/binding/AsyncConnectionSource;>;)V
MethodParameters:
Name Flags
callback final
public com.mongodb.session.SessionContext getSessionContext();
descriptor: ()Lcom/mongodb/session/SessionContext;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.async.client.ClientSessionBinding.sessionContext:Lcom/mongodb/internal/session/ClientSessionContext;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/async/client/ClientSessionBinding;
private void wrapConnectionSource(com.mongodb.binding.AsyncConnectionSource, com.mongodb.async.SingleResultCallback<com.mongodb.binding.AsyncConnectionSource>);
descriptor: (Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/async/SingleResultCallback;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.mongodb.async.client.ClientSessionBinding.isActiveShardedTxn:()Z
ifeq 9
1: aload 0
getfield com.mongodb.async.client.ClientSessionBinding.session:Lcom/mongodb/async/client/ClientSession;
invokeinterface com.mongodb.async.client.ClientSession.getPinnedServerAddress:()Lcom/mongodb/ServerAddress;
ifnonnull 7
2: aload 0
getfield com.mongodb.async.client.ClientSessionBinding.wrapped:Lcom/mongodb/internal/binding/AsyncClusterAwareReadWriteBinding;
invokeinterface com.mongodb.internal.binding.AsyncClusterAwareReadWriteBinding.getCluster:()Lcom/mongodb/connection/Cluster;
3: new com.mongodb.selector.ReadPreferenceServerSelector
dup
aload 0
getfield com.mongodb.async.client.ClientSessionBinding.wrapped:Lcom/mongodb/internal/binding/AsyncClusterAwareReadWriteBinding;
invokeinterface com.mongodb.internal.binding.AsyncClusterAwareReadWriteBinding.getReadPreference:()Lcom/mongodb/ReadPreference;
invokespecial com.mongodb.selector.ReadPreferenceServerSelector.<init>:(Lcom/mongodb/ReadPreference;)V
4: new com.mongodb.async.client.ClientSessionBinding$3
dup
aload 0
aload 2
invokespecial com.mongodb.async.client.ClientSessionBinding$3.<init>:(Lcom/mongodb/async/client/ClientSessionBinding;Lcom/mongodb/async/SingleResultCallback;)V
5: invokeinterface com.mongodb.connection.Cluster.selectServerAsync:(Lcom/mongodb/selector/ServerSelector;Lcom/mongodb/async/SingleResultCallback;)V
6: goto 10
7: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual com.mongodb.async.client.ClientSessionBinding.setSingleServerBindingConnectionSource:(Lcom/mongodb/async/SingleResultCallback;)V
8: goto 10
9: StackMap locals:
StackMap stack:
aload 2
new com.mongodb.async.client.ClientSessionBinding$SessionBindingAsyncConnectionSource
dup
aload 0
aload 1
invokespecial com.mongodb.async.client.ClientSessionBinding$SessionBindingAsyncConnectionSource.<init>:(Lcom/mongodb/async/client/ClientSessionBinding;Lcom/mongodb/binding/AsyncConnectionSource;)V
aconst_null
invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/mongodb/async/client/ClientSessionBinding;
0 11 1 connectionSource Lcom/mongodb/binding/AsyncConnectionSource;
0 11 2 callback Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/binding/AsyncConnectionSource;>;
Signature: (Lcom/mongodb/binding/AsyncConnectionSource;Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/binding/AsyncConnectionSource;>;)V
MethodParameters:
Name Flags
connectionSource final
callback final
private void setSingleServerBindingConnectionSource(com.mongodb.async.SingleResultCallback<com.mongodb.binding.AsyncConnectionSource>);
descriptor: (Lcom/mongodb/async/SingleResultCallback;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: new com.mongodb.binding.AsyncSingleServerBinding
dup
aload 0
getfield com.mongodb.async.client.ClientSessionBinding.wrapped:Lcom/mongodb/internal/binding/AsyncClusterAwareReadWriteBinding;
invokeinterface com.mongodb.internal.binding.AsyncClusterAwareReadWriteBinding.getCluster:()Lcom/mongodb/connection/Cluster;
aload 0
getfield com.mongodb.async.client.ClientSessionBinding.session:Lcom/mongodb/async/client/ClientSession;
invokeinterface com.mongodb.async.client.ClientSession.getPinnedServerAddress:()Lcom/mongodb/ServerAddress;
aload 0
getfield com.mongodb.async.client.ClientSessionBinding.wrapped:Lcom/mongodb/internal/binding/AsyncClusterAwareReadWriteBinding;
invokeinterface com.mongodb.internal.binding.AsyncClusterAwareReadWriteBinding.getReadPreference:()Lcom/mongodb/ReadPreference;
invokespecial com.mongodb.binding.AsyncSingleServerBinding.<init>:(Lcom/mongodb/connection/Cluster;Lcom/mongodb/ServerAddress;Lcom/mongodb/ReadPreference;)V
1: astore 2
start local 2 2: aload 2
new com.mongodb.async.client.ClientSessionBinding$4
dup
aload 0
aload 2
aload 1
invokespecial com.mongodb.async.client.ClientSessionBinding$4.<init>:(Lcom/mongodb/async/client/ClientSessionBinding;Lcom/mongodb/binding/AsyncSingleServerBinding;Lcom/mongodb/async/SingleResultCallback;)V
invokevirtual com.mongodb.binding.AsyncSingleServerBinding.getWriteConnectionSource:(Lcom/mongodb/async/SingleResultCallback;)V
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/ClientSessionBinding;
0 4 1 callback Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/binding/AsyncConnectionSource;>;
2 4 2 binding Lcom/mongodb/binding/AsyncSingleServerBinding;
Signature: (Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/binding/AsyncConnectionSource;>;)V
MethodParameters:
Name Flags
callback final
public int getCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.async.client.ClientSessionBinding.wrapped:Lcom/mongodb/internal/binding/AsyncClusterAwareReadWriteBinding;
invokeinterface com.mongodb.internal.binding.AsyncClusterAwareReadWriteBinding.getCount:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/async/client/ClientSessionBinding;
public com.mongodb.binding.AsyncReadWriteBinding retain();
descriptor: ()Lcom/mongodb/binding/AsyncReadWriteBinding;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.async.client.ClientSessionBinding.wrapped:Lcom/mongodb/internal/binding/AsyncClusterAwareReadWriteBinding;
invokeinterface com.mongodb.internal.binding.AsyncClusterAwareReadWriteBinding.retain:()Lcom/mongodb/binding/AsyncReadWriteBinding;
pop
1: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/mongodb/async/client/ClientSessionBinding;
public void release();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.async.client.ClientSessionBinding.wrapped:Lcom/mongodb/internal/binding/AsyncClusterAwareReadWriteBinding;
invokeinterface com.mongodb.internal.binding.AsyncClusterAwareReadWriteBinding.release:()V
1: aload 0
invokevirtual com.mongodb.async.client.ClientSessionBinding.closeSessionIfCountIsZero:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/mongodb/async/client/ClientSessionBinding;
private void closeSessionIfCountIsZero();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.mongodb.async.client.ClientSessionBinding.getCount:()I
ifne 2
aload 0
getfield com.mongodb.async.client.ClientSessionBinding.ownsSession:Z
ifeq 2
1: aload 0
getfield com.mongodb.async.client.ClientSessionBinding.session:Lcom/mongodb/async/client/ClientSession;
invokeinterface com.mongodb.async.client.ClientSession.close:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/mongodb/async/client/ClientSessionBinding;
private boolean isActiveShardedTxn();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.async.client.ClientSessionBinding.session:Lcom/mongodb/async/client/ClientSession;
invokeinterface com.mongodb.async.client.ClientSession.hasActiveTransaction:()Z
ifeq 1
aload 0
getfield com.mongodb.async.client.ClientSessionBinding.wrapped:Lcom/mongodb/internal/binding/AsyncClusterAwareReadWriteBinding;
invokeinterface com.mongodb.internal.binding.AsyncClusterAwareReadWriteBinding.getCluster:()Lcom/mongodb/connection/Cluster;
invokeinterface com.mongodb.connection.Cluster.getDescription:()Lcom/mongodb/connection/ClusterDescription;
invokevirtual com.mongodb.connection.ClusterDescription.getType:()Lcom/mongodb/connection/ClusterType;
getstatic com.mongodb.connection.ClusterType.SHARDED:Lcom/mongodb/connection/ClusterType;
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/mongodb/async/client/ClientSessionBinding;
public com.mongodb.binding.ReferenceCounted retain();
descriptor: ()Lcom/mongodb/binding/ReferenceCounted;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual com.mongodb.async.client.ClientSessionBinding.retain:()Lcom/mongodb/binding/AsyncReadWriteBinding;
areturn
LocalVariableTable:
Start End Slot Name Signature
public com.mongodb.binding.AsyncReadBinding retain();
descriptor: ()Lcom/mongodb/binding/AsyncReadBinding;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual com.mongodb.async.client.ClientSessionBinding.retain:()Lcom/mongodb/binding/AsyncReadWriteBinding;
areturn
LocalVariableTable:
Start End Slot Name Signature
public com.mongodb.binding.AsyncWriteBinding retain();
descriptor: ()Lcom/mongodb/binding/AsyncWriteBinding;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual com.mongodb.async.client.ClientSessionBinding.retain:()Lcom/mongodb/binding/AsyncReadWriteBinding;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "ClientSessionBinding.java"
NestMembers:
com.mongodb.async.client.ClientSessionBinding$1 com.mongodb.async.client.ClientSessionBinding$2 com.mongodb.async.client.ClientSessionBinding$3 com.mongodb.async.client.ClientSessionBinding$4 com.mongodb.async.client.ClientSessionBinding$AsyncClientSessionContext com.mongodb.async.client.ClientSessionBinding$SessionBindingAsyncConnectionSource
InnerClasses:
com.mongodb.async.client.ClientSessionBinding$1
com.mongodb.async.client.ClientSessionBinding$2
com.mongodb.async.client.ClientSessionBinding$3
com.mongodb.async.client.ClientSessionBinding$4
private final AsyncClientSessionContext = com.mongodb.async.client.ClientSessionBinding$AsyncClientSessionContext of com.mongodb.async.client.ClientSessionBinding
private SessionBindingAsyncConnectionSource = com.mongodb.async.client.ClientSessionBinding$SessionBindingAsyncConnectionSource of com.mongodb.async.client.ClientSessionBinding