public class com.mongodb.internal.connection.InternalStreamConnection implements com.mongodb.internal.connection.InternalConnection
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.mongodb.internal.connection.InternalStreamConnection
super_class: java.lang.Object
{
private static final java.util.Set<java.lang.String> SECURITY_SENSITIVE_COMMANDS;
descriptor: Ljava/util/Set;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Set<Ljava/lang/String;>;
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.connection.ServerId serverId;
descriptor: Lcom/mongodb/connection/ServerId;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.connection.StreamFactory streamFactory;
descriptor: Lcom/mongodb/connection/StreamFactory;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.internal.connection.InternalConnectionInitializer connectionInitializer;
descriptor: Lcom/mongodb/internal/connection/InternalConnectionInitializer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile com.mongodb.connection.ConnectionDescription description;
descriptor: Lcom/mongodb/connection/ConnectionDescription;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile com.mongodb.connection.Stream stream;
descriptor: Lcom/mongodb/connection/Stream;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private final java.util.concurrent.atomic.AtomicBoolean isClosed;
descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.atomic.AtomicBoolean opened;
descriptor: Ljava/util/concurrent/atomic/AtomicBoolean;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.List<com.mongodb.MongoCompressor> compressorList;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lcom/mongodb/MongoCompressor;>;
private final com.mongodb.event.CommandListener commandListener;
descriptor: Lcom/mongodb/event/CommandListener;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile com.mongodb.internal.connection.Compressor sendCompressor;
descriptor: Lcom/mongodb/internal/connection/Compressor;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile java.util.Map<java.lang.Byte, com.mongodb.internal.connection.Compressor> compressorMap;
descriptor: Ljava/util/Map;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljava/util/Map<Ljava/lang/Byte;Lcom/mongodb/internal/connection/Compressor;>;
private static final com.mongodb.diagnostics.logging.Logger COMMAND_PROTOCOL_LOGGER;
descriptor: Lcom/mongodb/diagnostics/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=0, args_size=0
0: new java.util.HashSet
dup
bipush 9
anewarray java.lang.String
dup
iconst_0
1: ldc "authenticate"
aastore
dup
iconst_1
2: ldc "saslStart"
aastore
dup
iconst_2
3: ldc "saslContinue"
aastore
dup
iconst_3
4: ldc "getnonce"
aastore
dup
iconst_4
5: ldc "createUser"
aastore
dup
iconst_5
6: ldc "updateUser"
aastore
dup
bipush 6
7: ldc "copydbgetnonce"
aastore
dup
bipush 7
8: ldc "copydbsaslstart"
aastore
dup
bipush 8
9: ldc "copydb"
aastore
10: invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
putstatic com.mongodb.internal.connection.InternalStreamConnection.SECURITY_SENSITIVE_COMMANDS:Ljava/util/Set;
11: ldc "connection"
invokestatic com.mongodb.diagnostics.logging.Loggers.getLogger:(Ljava/lang/String;)Lcom/mongodb/diagnostics/logging/Logger;
putstatic com.mongodb.internal.connection.InternalStreamConnection.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
12: ldc "protocol.command"
invokestatic com.mongodb.diagnostics.logging.Loggers.getLogger:(Ljava/lang/String;)Lcom/mongodb/diagnostics/logging/Logger;
putstatic com.mongodb.internal.connection.InternalStreamConnection.COMMAND_PROTOCOL_LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(com.mongodb.connection.ServerId, com.mongodb.connection.StreamFactory, java.util.List<com.mongodb.MongoCompressor>, com.mongodb.event.CommandListener, com.mongodb.internal.connection.InternalConnectionInitializer);
descriptor: (Lcom/mongodb/connection/ServerId;Lcom/mongodb/connection/StreamFactory;Ljava/util/List;Lcom/mongodb/event/CommandListener;Lcom/mongodb/internal/connection/InternalConnectionInitializer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.atomic.AtomicBoolean
dup
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
putfield com.mongodb.internal.connection.InternalStreamConnection.isClosed:Ljava/util/concurrent/atomic/AtomicBoolean;
2: aload 0
new java.util.concurrent.atomic.AtomicBoolean
dup
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:()V
putfield com.mongodb.internal.connection.InternalStreamConnection.opened:Ljava/util/concurrent/atomic/AtomicBoolean;
3: aload 0
ldc "serverId"
aload 1
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.mongodb.connection.ServerId
putfield com.mongodb.internal.connection.InternalStreamConnection.serverId:Lcom/mongodb/connection/ServerId;
4: aload 0
ldc "streamFactory"
aload 2
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.mongodb.connection.StreamFactory
putfield com.mongodb.internal.connection.InternalStreamConnection.streamFactory:Lcom/mongodb/connection/StreamFactory;
5: aload 0
ldc "compressorList"
aload 3
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
putfield com.mongodb.internal.connection.InternalStreamConnection.compressorList:Ljava/util/List;
6: aload 0
aload 0
aload 3
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.createCompressorMap:(Ljava/util/List;)Ljava/util/Map;
putfield com.mongodb.internal.connection.InternalStreamConnection.compressorMap:Ljava/util/Map;
7: aload 0
aload 4
putfield com.mongodb.internal.connection.InternalStreamConnection.commandListener:Lcom/mongodb/event/CommandListener;
8: aload 0
ldc "connectionInitializer"
aload 5
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.mongodb.internal.connection.InternalConnectionInitializer
putfield com.mongodb.internal.connection.InternalStreamConnection.connectionInitializer:Lcom/mongodb/internal/connection/InternalConnectionInitializer;
9: aload 0
new com.mongodb.connection.ConnectionDescription
dup
aload 1
invokespecial com.mongodb.connection.ConnectionDescription.<init>:(Lcom/mongodb/connection/ServerId;)V
putfield com.mongodb.internal.connection.InternalStreamConnection.description:Lcom/mongodb/connection/ConnectionDescription;
10: 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 11 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 11 1 serverId Lcom/mongodb/connection/ServerId;
0 11 2 streamFactory Lcom/mongodb/connection/StreamFactory;
0 11 3 compressorList Ljava/util/List<Lcom/mongodb/MongoCompressor;>;
0 11 4 commandListener Lcom/mongodb/event/CommandListener;
0 11 5 connectionInitializer Lcom/mongodb/internal/connection/InternalConnectionInitializer;
Signature: (Lcom/mongodb/connection/ServerId;Lcom/mongodb/connection/StreamFactory;Ljava/util/List<Lcom/mongodb/MongoCompressor;>;Lcom/mongodb/event/CommandListener;Lcom/mongodb/internal/connection/InternalConnectionInitializer;)V
MethodParameters:
Name Flags
serverId final
streamFactory final
compressorList final
commandListener final
connectionInitializer final
public com.mongodb.connection.ConnectionDescription getDescription();
descriptor: ()Lcom/mongodb/connection/ConnectionDescription;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.description:Lcom/mongodb/connection/ConnectionDescription;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
public void open();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=1
start local 0 0: ldc "Open already called"
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.stream:Lcom/mongodb/connection/Stream;
ifnonnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack: java.lang.String
1: iconst_0
StackMap locals: com.mongodb.internal.connection.InternalStreamConnection
StackMap stack: java.lang.String int
2: invokestatic com.mongodb.assertions.Assertions.isTrue:(Ljava/lang/String;Z)V
3: aload 0
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.streamFactory:Lcom/mongodb/connection/StreamFactory;
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.serverId:Lcom/mongodb/connection/ServerId;
invokevirtual com.mongodb.connection.ServerId.getAddress:()Lcom/mongodb/ServerAddress;
invokeinterface com.mongodb.connection.StreamFactory.create:(Lcom/mongodb/ServerAddress;)Lcom/mongodb/connection/Stream;
putfield com.mongodb.internal.connection.InternalStreamConnection.stream:Lcom/mongodb/connection/Stream;
4: aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.stream:Lcom/mongodb/connection/Stream;
invokeinterface com.mongodb.connection.Stream.open:()V
5: aload 0
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.connectionInitializer:Lcom/mongodb/internal/connection/InternalConnectionInitializer;
aload 0
invokeinterface com.mongodb.internal.connection.InternalConnectionInitializer.initialize:(Lcom/mongodb/internal/connection/InternalConnection;)Lcom/mongodb/connection/ConnectionDescription;
putfield com.mongodb.internal.connection.InternalStreamConnection.description:Lcom/mongodb/connection/ConnectionDescription;
6: aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.opened:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
7: aload 0
aload 0
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.description:Lcom/mongodb/connection/ConnectionDescription;
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.findSendCompressor:(Lcom/mongodb/connection/ConnectionDescription;)Lcom/mongodb/internal/connection/Compressor;
putfield com.mongodb.internal.connection.InternalStreamConnection.sendCompressor:Lcom/mongodb/internal/connection/Compressor;
8: getstatic com.mongodb.internal.connection.InternalStreamConnection.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
ldc "Opened connection [%s] to %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.getId:()Lcom/mongodb/connection/ConnectionId;
aastore
dup
iconst_1
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.serverId:Lcom/mongodb/connection/ServerId;
invokevirtual com.mongodb.connection.ServerId.getAddress:()Lcom/mongodb/ServerAddress;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface com.mongodb.diagnostics.logging.Logger.info:(Ljava/lang/String;)V
9: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 1
start local 1 11: aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.close:()V
12: aload 1
instanceof com.mongodb.MongoException
ifeq 14
13: aload 1
checkcast com.mongodb.MongoException
athrow
14: StackMap locals: java.lang.Throwable
StackMap stack:
new com.mongodb.MongoException
dup
aload 1
invokevirtual java.lang.Throwable.toString:()Ljava/lang/String;
aload 1
invokespecial com.mongodb.MongoException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 15: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
11 15 1 t Ljava/lang/Throwable;
Exception table:
from to target type
4 9 10 Class java.lang.Throwable
public void openAsync(com.mongodb.async.SingleResultCallback<java.lang.Void>);
descriptor: (Lcom/mongodb/async/SingleResultCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: ldc "Open already called"
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.stream:Lcom/mongodb/connection/Stream;
ifnonnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack: java.lang.String
1: iconst_0
StackMap locals: com.mongodb.internal.connection.InternalStreamConnection com.mongodb.async.SingleResultCallback
StackMap stack: java.lang.String int
2: aload 1
invokestatic com.mongodb.assertions.Assertions.isTrue:(Ljava/lang/String;ZLcom/mongodb/async/SingleResultCallback;)V
3: aload 0
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.streamFactory:Lcom/mongodb/connection/StreamFactory;
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.serverId:Lcom/mongodb/connection/ServerId;
invokevirtual com.mongodb.connection.ServerId.getAddress:()Lcom/mongodb/ServerAddress;
invokeinterface com.mongodb.connection.StreamFactory.create:(Lcom/mongodb/ServerAddress;)Lcom/mongodb/connection/Stream;
putfield com.mongodb.internal.connection.InternalStreamConnection.stream:Lcom/mongodb/connection/Stream;
4: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 2
start local 2 6: aload 1
aconst_null
aload 2
invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
7: return
end local 2 8: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.stream:Lcom/mongodb/connection/Stream;
new com.mongodb.internal.connection.InternalStreamConnection$1
dup
aload 0
aload 1
invokespecial com.mongodb.internal.connection.InternalStreamConnection$1.<init>:(Lcom/mongodb/internal/connection/InternalStreamConnection;Lcom/mongodb/async/SingleResultCallback;)V
invokeinterface com.mongodb.connection.Stream.openAsync:(Lcom/mongodb/connection/AsyncCompletionHandler;)V
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 10 1 callback Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
6 8 2 t Ljava/lang/Throwable;
Exception table:
from to target type
3 4 5 Class java.lang.Throwable
Signature: (Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
MethodParameters:
Name Flags
callback final
private java.util.Map<java.lang.Byte, com.mongodb.internal.connection.Compressor> createCompressorMap(java.util.List<com.mongodb.MongoCompressor>);
descriptor: (Ljava/util/List;)Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: new java.util.HashMap
dup
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.compressorList:Ljava/util/List;
invokeinterface java.util.List.size:()I
invokespecial java.util.HashMap.<init>:(I)V
astore 2
start local 2 1: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 5
StackMap locals: com.mongodb.internal.connection.InternalStreamConnection java.util.List java.util.Map top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.mongodb.MongoCompressor
astore 3
start local 3 3: aload 0
aload 3
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.createCompressor:(Lcom/mongodb/MongoCompressor;)Lcom/mongodb/internal/connection/Compressor;
astore 5
start local 5 4: aload 2
aload 5
invokevirtual com.mongodb.internal.connection.Compressor.getId:()B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
aload 5
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 end local 3 5: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 7 1 compressorList Ljava/util/List<Lcom/mongodb/MongoCompressor;>;
1 7 2 compressorMap Ljava/util/Map<Ljava/lang/Byte;Lcom/mongodb/internal/connection/Compressor;>;
3 5 3 mongoCompressor Lcom/mongodb/MongoCompressor;
4 5 5 compressor Lcom/mongodb/internal/connection/Compressor;
Signature: (Ljava/util/List<Lcom/mongodb/MongoCompressor;>;)Ljava/util/Map<Ljava/lang/Byte;Lcom/mongodb/internal/connection/Compressor;>;
MethodParameters:
Name Flags
compressorList final
private com.mongodb.internal.connection.Compressor findSendCompressor(com.mongodb.connection.ConnectionDescription);
descriptor: (Lcom/mongodb/connection/ConnectionDescription;)Lcom/mongodb/internal/connection/Compressor;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.mongodb.connection.ConnectionDescription.getCompressors:()Ljava/util/List;
invokeinterface java.util.List.isEmpty:()Z
ifeq 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.mongodb.connection.ConnectionDescription.getCompressors:()Ljava/util/List;
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 3: aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.compressorMap:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 7
StackMap locals: com.mongodb.internal.connection.InternalStreamConnection com.mongodb.connection.ConnectionDescription java.lang.String top java.util.Iterator
StackMap stack:
4: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.mongodb.internal.connection.Compressor
astore 3
start local 3 5: aload 3
invokevirtual com.mongodb.internal.connection.Compressor.getName:()Ljava/lang/String;
aload 2
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 7
6: aload 3
areturn
end local 3 7: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
8: new com.mongodb.MongoInternalException
dup
new java.lang.StringBuilder
dup
ldc "Unexpected compressor negotiated: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial com.mongodb.MongoInternalException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 9 1 description Lcom/mongodb/connection/ConnectionDescription;
3 9 2 firstCompressorName Ljava/lang/String;
5 7 3 compressor Lcom/mongodb/internal/connection/Compressor;
MethodParameters:
Name Flags
description final
private com.mongodb.internal.connection.Compressor createCompressor(com.mongodb.MongoCompressor);
descriptor: (Lcom/mongodb/MongoCompressor;)Lcom/mongodb/internal/connection/Compressor;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.mongodb.MongoCompressor.getName:()Ljava/lang/String;
ldc "zlib"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 2
1: new com.mongodb.internal.connection.ZlibCompressor
dup
aload 1
invokespecial com.mongodb.internal.connection.ZlibCompressor.<init>:(Lcom/mongodb/MongoCompressor;)V
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.mongodb.MongoCompressor.getName:()Ljava/lang/String;
ldc "snappy"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
3: new com.mongodb.internal.connection.SnappyCompressor
dup
invokespecial com.mongodb.internal.connection.SnappyCompressor.<init>:()V
areturn
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.mongodb.MongoCompressor.getName:()Ljava/lang/String;
ldc "zstd"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 6
5: new com.mongodb.internal.connection.ZstdCompressor
dup
invokespecial com.mongodb.internal.connection.ZstdCompressor.<init>:()V
areturn
6: StackMap locals:
StackMap stack:
new com.mongodb.MongoClientException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported compressor "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual com.mongodb.MongoCompressor.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial com.mongodb.MongoClientException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 7 1 mongoCompressor Lcom/mongodb/MongoCompressor;
MethodParameters:
Name Flags
mongoCompressor final
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.isClosed:Ljava/util/concurrent/atomic/AtomicBoolean;
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.getAndSet:(Z)Z
ifne 5
1: getstatic com.mongodb.internal.connection.InternalStreamConnection.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
invokeinterface com.mongodb.diagnostics.logging.Logger.isDebugEnabled:()Z
ifeq 3
2: getstatic com.mongodb.internal.connection.InternalStreamConnection.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
ldc "Closing connection %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.getId:()Lcom/mongodb/connection/ConnectionId;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface com.mongodb.diagnostics.logging.Logger.debug:(Ljava/lang/String;)V
3: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.stream:Lcom/mongodb/connection/Stream;
ifnull 5
4: aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.stream:Lcom/mongodb/connection/Stream;
invokeinterface com.mongodb.connection.Stream.close:()V
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
public boolean opened();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.opened:Ljava/util/concurrent/atomic/AtomicBoolean;
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
public boolean isClosed();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.isClosed:Ljava/util/concurrent/atomic/AtomicBoolean;
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
public <T> T sendAndReceive(com.mongodb.internal.connection.CommandMessage, org.bson.codecs.Decoder<T>, com.mongodb.session.SessionContext);
descriptor: (Lcom/mongodb/internal/connection/CommandMessage;Lorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new com.mongodb.connection.ByteBufferBsonOutput
dup
aload 0
invokespecial com.mongodb.connection.ByteBufferBsonOutput.<init>:(Lcom/mongodb/connection/BufferProvider;)V
astore 4
start local 4 1: aload 1
aload 4
aload 3
invokevirtual com.mongodb.internal.connection.CommandMessage.encode:(Lorg/bson/io/BsonOutput;Lcom/mongodb/session/SessionContext;)V
2: aload 0
aload 1
aload 4
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.createCommandEventSender:(Lcom/mongodb/internal/connection/CommandMessage;Lcom/mongodb/connection/ByteBufferBsonOutput;)Lcom/mongodb/internal/connection/CommandEventSender;
astore 5
start local 5 3: aload 5
invokeinterface com.mongodb.internal.connection.CommandEventSender.sendStartedEvent:()V
4: goto 8
end local 5 StackMap locals: com.mongodb.internal.connection.InternalStreamConnection com.mongodb.internal.connection.CommandMessage org.bson.codecs.Decoder com.mongodb.session.SessionContext com.mongodb.connection.ByteBufferBsonOutput
StackMap stack: java.lang.RuntimeException
5: astore 6
start local 6 6: aload 4
invokevirtual com.mongodb.connection.ByteBufferBsonOutput.close:()V
7: aload 6
athrow
end local 6 start local 5 8: StackMap locals: com.mongodb.internal.connection.CommandEventSender
StackMap stack:
aload 0
aload 1
aload 4
aload 3
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.sendCommandMessage:(Lcom/mongodb/internal/connection/CommandMessage;Lcom/mongodb/connection/ByteBufferBsonOutput;Lcom/mongodb/session/SessionContext;)V
9: aload 1
invokevirtual com.mongodb.internal.connection.CommandMessage.isResponseExpected:()Z
ifeq 12
10: aload 0
aload 1
aload 2
aload 5
aload 3
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.receiveCommandMessageResponse:(Lcom/mongodb/internal/connection/CommandMessage;Lorg/bson/codecs/Decoder;Lcom/mongodb/internal/connection/CommandEventSender;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
11: areturn
12: StackMap locals:
StackMap stack:
aload 5
invokeinterface com.mongodb.internal.connection.CommandEventSender.sendSucceededEventForOneWayCommand:()V
13: aconst_null
areturn
14: StackMap locals:
StackMap stack: java.lang.RuntimeException
astore 6
start local 6 15: aload 5
aload 6
invokeinterface com.mongodb.internal.connection.CommandEventSender.sendFailedEvent:(Ljava/lang/Throwable;)V
16: aload 6
athrow
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 17 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 17 1 message Lcom/mongodb/internal/connection/CommandMessage;
0 17 2 decoder Lorg/bson/codecs/Decoder<TT;>;
0 17 3 sessionContext Lcom/mongodb/session/SessionContext;
1 17 4 bsonOutput Lcom/mongodb/connection/ByteBufferBsonOutput;
3 5 5 commandEventSender Lcom/mongodb/internal/connection/CommandEventSender;
8 17 5 commandEventSender Lcom/mongodb/internal/connection/CommandEventSender;
6 8 6 e Ljava/lang/RuntimeException;
15 17 6 e Ljava/lang/RuntimeException;
Exception table:
from to target type
1 4 5 Class java.lang.RuntimeException
8 11 14 Class java.lang.RuntimeException
12 13 14 Class java.lang.RuntimeException
Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/internal/connection/CommandMessage;Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/session/SessionContext;)TT;
MethodParameters:
Name Flags
message final
decoder final
sessionContext final
private void sendCommandMessage(com.mongodb.internal.connection.CommandMessage, com.mongodb.connection.ByteBufferBsonOutput, com.mongodb.session.SessionContext);
descriptor: (Lcom/mongodb/internal/connection/CommandMessage;Lcom/mongodb/connection/ByteBufferBsonOutput;Lcom/mongodb/session/SessionContext;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.sendCompressor:Lcom/mongodb/internal/connection/Compressor;
ifnull 1
getstatic com.mongodb.internal.connection.InternalStreamConnection.SECURITY_SENSITIVE_COMMANDS:Ljava/util/Set;
aload 1
aload 2
invokevirtual com.mongodb.internal.connection.CommandMessage.getCommandDocument:(Lcom/mongodb/connection/ByteBufferBsonOutput;)Lorg/bson/BsonDocument;
invokevirtual org.bson.BsonDocument.getFirstKey:()Ljava/lang/String;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 8
1: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual com.mongodb.connection.ByteBufferBsonOutput.getByteBuffers:()Ljava/util/List;
aload 1
invokevirtual com.mongodb.internal.connection.CommandMessage.getId:()I
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.sendMessage:(Ljava/util/List;I)V
2: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
3: astore 4
4: aload 2
invokevirtual com.mongodb.connection.ByteBufferBsonOutput.close:()V
5: aload 4
athrow
6: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.mongodb.connection.ByteBufferBsonOutput.close:()V
7: goto 27
8: StackMap locals:
StackMap stack:
aload 2
invokevirtual com.mongodb.connection.ByteBufferBsonOutput.getByteBuffers:()Ljava/util/List;
astore 4
start local 4 9: new com.mongodb.internal.connection.CompressedMessage
dup
aload 1
invokevirtual com.mongodb.internal.connection.CommandMessage.getOpCode:()Lcom/mongodb/internal/connection/OpCode;
aload 4
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.sendCompressor:Lcom/mongodb/internal/connection/Compressor;
10: aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.description:Lcom/mongodb/connection/ConnectionDescription;
invokestatic com.mongodb.internal.connection.ProtocolHelper.getMessageSettings:(Lcom/mongodb/connection/ConnectionDescription;)Lcom/mongodb/internal/connection/MessageSettings;
11: invokespecial com.mongodb.internal.connection.CompressedMessage.<init>:(Lcom/mongodb/internal/connection/OpCode;Ljava/util/List;Lcom/mongodb/internal/connection/Compressor;Lcom/mongodb/internal/connection/MessageSettings;)V
astore 6
start local 6 12: new com.mongodb.connection.ByteBufferBsonOutput
dup
aload 0
invokespecial com.mongodb.connection.ByteBufferBsonOutput.<init>:(Lcom/mongodb/connection/BufferProvider;)V
astore 5
start local 5 13: aload 6
aload 5
aload 3
invokevirtual com.mongodb.internal.connection.CompressedMessage.encode:(Lorg/bson/io/BsonOutput;Lcom/mongodb/session/SessionContext;)V
end local 6 14: goto 19
end local 5 StackMap locals: com.mongodb.internal.connection.InternalStreamConnection com.mongodb.internal.connection.CommandMessage com.mongodb.connection.ByteBufferBsonOutput com.mongodb.session.SessionContext java.util.List
StackMap stack: java.lang.Throwable
15: astore 7
16: aload 0
aload 4
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.releaseAllBuffers:(Ljava/util/List;)V
17: aload 2
invokevirtual com.mongodb.connection.ByteBufferBsonOutput.close:()V
18: aload 7
athrow
start local 5 19: StackMap locals: com.mongodb.connection.ByteBufferBsonOutput
StackMap stack:
aload 0
aload 4
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.releaseAllBuffers:(Ljava/util/List;)V
20: aload 2
invokevirtual com.mongodb.connection.ByteBufferBsonOutput.close:()V
21: aload 0
aload 5
invokevirtual com.mongodb.connection.ByteBufferBsonOutput.getByteBuffers:()Ljava/util/List;
aload 1
invokevirtual com.mongodb.internal.connection.CommandMessage.getId:()I
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.sendMessage:(Ljava/util/List;I)V
22: goto 26
StackMap locals:
StackMap stack: java.lang.Throwable
23: astore 6
24: aload 5
invokevirtual com.mongodb.connection.ByteBufferBsonOutput.close:()V
25: aload 6
athrow
26: StackMap locals:
StackMap stack:
aload 5
invokevirtual com.mongodb.connection.ByteBufferBsonOutput.close:()V
end local 5 end local 4 27: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 28 1 message Lcom/mongodb/internal/connection/CommandMessage;
0 28 2 bsonOutput Lcom/mongodb/connection/ByteBufferBsonOutput;
0 28 3 sessionContext Lcom/mongodb/session/SessionContext;
9 27 4 byteBuffers Ljava/util/List<Lorg/bson/ByteBuf;>;
13 15 5 compressedBsonOutput Lcom/mongodb/connection/ByteBufferBsonOutput;
19 27 5 compressedBsonOutput Lcom/mongodb/connection/ByteBufferBsonOutput;
12 14 6 compressedMessage Lcom/mongodb/internal/connection/CompressedMessage;
Exception table:
from to target type
1 3 3 any
9 15 15 any
21 23 23 any
MethodParameters:
Name Flags
message final
bsonOutput final
sessionContext final
private <T> T receiveCommandMessageResponse(com.mongodb.internal.connection.CommandMessage, org.bson.codecs.Decoder<T>, com.mongodb.internal.connection.CommandEventSender, com.mongodb.session.SessionContext);
descriptor: (Lcom/mongodb/internal/connection/CommandMessage;Lorg/bson/codecs/Decoder;Lcom/mongodb/internal/connection/CommandEventSender;Lcom/mongodb/session/SessionContext;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
invokevirtual com.mongodb.internal.connection.CommandMessage.getId:()I
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.receiveMessage:(I)Lcom/mongodb/internal/connection/ResponseBuffers;
astore 5
start local 5 1: aload 0
aload 4
aload 5
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.updateSessionContext:(Lcom/mongodb/session/SessionContext;Lcom/mongodb/internal/connection/ResponseBuffers;)V
2: aload 5
invokestatic com.mongodb.internal.connection.ProtocolHelper.isCommandOk:(Lcom/mongodb/internal/connection/ResponseBuffers;)Z
ifne 6
3: aload 5
aload 1
invokevirtual com.mongodb.internal.connection.CommandMessage.getId:()I
new org.bson.codecs.BsonDocumentCodec
dup
invokespecial org.bson.codecs.BsonDocumentCodec.<init>:()V
invokevirtual com.mongodb.internal.connection.ResponseBuffers.getResponseDocument:(ILorg/bson/codecs/Decoder;)Lorg/bson/BsonDocument;
4: aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.description:Lcom/mongodb/connection/ConnectionDescription;
invokevirtual com.mongodb.connection.ConnectionDescription.getServerAddress:()Lcom/mongodb/ServerAddress;
5: invokestatic com.mongodb.internal.connection.ProtocolHelper.getCommandFailureException:(Lorg/bson/BsonDocument;Lcom/mongodb/ServerAddress;)Lcom/mongodb/MongoException;
athrow
6: StackMap locals: com.mongodb.internal.connection.ResponseBuffers
StackMap stack:
aload 3
aload 5
invokeinterface com.mongodb.internal.connection.CommandEventSender.sendSucceededEvent:(Lcom/mongodb/internal/connection/ResponseBuffers;)V
7: aload 0
aload 2
aload 5
aload 1
invokevirtual com.mongodb.internal.connection.CommandMessage.getId:()I
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.getCommandResult:(Lorg/bson/codecs/Decoder;Lcom/mongodb/internal/connection/ResponseBuffers;I)Ljava/lang/Object;
astore 7
8: aload 5
invokevirtual com.mongodb.internal.connection.ResponseBuffers.close:()V
9: aload 7
areturn
10: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
11: aload 5
invokevirtual com.mongodb.internal.connection.ResponseBuffers.close:()V
12: aload 6
athrow
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 13 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 13 1 message Lcom/mongodb/internal/connection/CommandMessage;
0 13 2 decoder Lorg/bson/codecs/Decoder<TT;>;
0 13 3 commandEventSender Lcom/mongodb/internal/connection/CommandEventSender;
0 13 4 sessionContext Lcom/mongodb/session/SessionContext;
1 13 5 responseBuffers Lcom/mongodb/internal/connection/ResponseBuffers;
Exception table:
from to target type
1 8 10 any
Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/internal/connection/CommandMessage;Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/internal/connection/CommandEventSender;Lcom/mongodb/session/SessionContext;)TT;
MethodParameters:
Name Flags
message final
decoder final
commandEventSender final
sessionContext final
public <T> void sendAndReceiveAsync(com.mongodb.internal.connection.CommandMessage, org.bson.codecs.Decoder<T>, com.mongodb.session.SessionContext, com.mongodb.async.SingleResultCallback<T>);
descriptor: (Lcom/mongodb/internal/connection/CommandMessage;Lorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: ldc "stream is open"
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.stream:Lcom/mongodb/connection/Stream;
aload 4
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;Lcom/mongodb/async/SingleResultCallback;)Ljava/lang/Object;
pop
1: aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.isClosed:()Z
ifeq 4
2: aload 4
aconst_null
new com.mongodb.MongoSocketClosedException
dup
ldc "Can not read from a closed socket"
aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.getServerAddress:()Lcom/mongodb/ServerAddress;
invokespecial com.mongodb.MongoSocketClosedException.<init>:(Ljava/lang/String;Lcom/mongodb/ServerAddress;)V
invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
3: return
4: StackMap locals:
StackMap stack:
new com.mongodb.connection.ByteBufferBsonOutput
dup
aload 0
invokespecial com.mongodb.connection.ByteBufferBsonOutput.<init>:(Lcom/mongodb/connection/BufferProvider;)V
astore 5
start local 5 5: new com.mongodb.connection.ByteBufferBsonOutput
dup
aload 0
invokespecial com.mongodb.connection.ByteBufferBsonOutput.<init>:(Lcom/mongodb/connection/BufferProvider;)V
astore 6
start local 6 6: aload 1
aload 5
aload 3
invokevirtual com.mongodb.internal.connection.CommandMessage.encode:(Lorg/bson/io/BsonOutput;Lcom/mongodb/session/SessionContext;)V
7: aload 0
aload 1
aload 5
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.createCommandEventSender:(Lcom/mongodb/internal/connection/CommandMessage;Lcom/mongodb/connection/ByteBufferBsonOutput;)Lcom/mongodb/internal/connection/CommandEventSender;
astore 7
start local 7 8: aload 7
invokeinterface com.mongodb.internal.connection.CommandEventSender.sendStartedEvent:()V
9: aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.sendCompressor:Lcom/mongodb/internal/connection/Compressor;
ifnull 10
getstatic com.mongodb.internal.connection.InternalStreamConnection.SECURITY_SENSITIVE_COMMANDS:Ljava/util/Set;
aload 1
aload 5
invokevirtual com.mongodb.internal.connection.CommandMessage.getCommandDocument:(Lcom/mongodb/connection/ByteBufferBsonOutput;)Lorg/bson/BsonDocument;
invokevirtual org.bson.BsonDocument.getFirstKey:()Ljava/lang/String;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 14
10: StackMap locals: com.mongodb.connection.ByteBufferBsonOutput com.mongodb.connection.ByteBufferBsonOutput com.mongodb.internal.connection.CommandEventSender
StackMap stack:
aload 0
aload 1
invokevirtual com.mongodb.internal.connection.CommandMessage.getId:()I
aload 2
aload 3
aload 4
aload 5
aload 7
11: aload 1
invokevirtual com.mongodb.internal.connection.CommandMessage.isResponseExpected:()Z
12: invokevirtual com.mongodb.internal.connection.InternalStreamConnection.sendCommandMessageAsync:(ILorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/connection/ByteBufferBsonOutput;Lcom/mongodb/internal/connection/CommandEventSender;Z)V
13: goto 34
14: StackMap locals:
StackMap stack:
aload 5
invokevirtual com.mongodb.connection.ByteBufferBsonOutput.getByteBuffers:()Ljava/util/List;
astore 8
start local 8 15: new com.mongodb.internal.connection.CompressedMessage
dup
aload 1
invokevirtual com.mongodb.internal.connection.CommandMessage.getOpCode:()Lcom/mongodb/internal/connection/OpCode;
aload 8
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.sendCompressor:Lcom/mongodb/internal/connection/Compressor;
16: aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.description:Lcom/mongodb/connection/ConnectionDescription;
invokestatic com.mongodb.internal.connection.ProtocolHelper.getMessageSettings:(Lcom/mongodb/connection/ConnectionDescription;)Lcom/mongodb/internal/connection/MessageSettings;
17: invokespecial com.mongodb.internal.connection.CompressedMessage.<init>:(Lcom/mongodb/internal/connection/OpCode;Ljava/util/List;Lcom/mongodb/internal/connection/Compressor;Lcom/mongodb/internal/connection/MessageSettings;)V
astore 9
start local 9 18: aload 9
aload 6
aload 3
invokevirtual com.mongodb.internal.connection.CompressedMessage.encode:(Lorg/bson/io/BsonOutput;Lcom/mongodb/session/SessionContext;)V
end local 9 19: goto 24
StackMap locals: com.mongodb.internal.connection.InternalStreamConnection com.mongodb.internal.connection.CommandMessage org.bson.codecs.Decoder com.mongodb.session.SessionContext com.mongodb.async.SingleResultCallback com.mongodb.connection.ByteBufferBsonOutput com.mongodb.connection.ByteBufferBsonOutput com.mongodb.internal.connection.CommandEventSender java.util.List
StackMap stack: java.lang.Throwable
20: astore 10
21: aload 0
aload 8
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.releaseAllBuffers:(Ljava/util/List;)V
22: aload 5
invokevirtual com.mongodb.connection.ByteBufferBsonOutput.close:()V
23: aload 10
athrow
24: StackMap locals:
StackMap stack:
aload 0
aload 8
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.releaseAllBuffers:(Ljava/util/List;)V
25: aload 5
invokevirtual com.mongodb.connection.ByteBufferBsonOutput.close:()V
26: aload 0
aload 1
invokevirtual com.mongodb.internal.connection.CommandMessage.getId:()I
aload 2
aload 3
aload 4
aload 6
aload 7
27: aload 1
invokevirtual com.mongodb.internal.connection.CommandMessage.isResponseExpected:()Z
28: invokevirtual com.mongodb.internal.connection.InternalStreamConnection.sendCommandMessageAsync:(ILorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/connection/ByteBufferBsonOutput;Lcom/mongodb/internal/connection/CommandEventSender;Z)V
end local 8 end local 7 29: goto 34
StackMap locals: com.mongodb.internal.connection.InternalStreamConnection com.mongodb.internal.connection.CommandMessage org.bson.codecs.Decoder com.mongodb.session.SessionContext com.mongodb.async.SingleResultCallback com.mongodb.connection.ByteBufferBsonOutput com.mongodb.connection.ByteBufferBsonOutput
StackMap stack: java.lang.Throwable
30: astore 7
start local 7 31: aload 5
invokevirtual com.mongodb.connection.ByteBufferBsonOutput.close:()V
32: aload 6
invokevirtual com.mongodb.connection.ByteBufferBsonOutput.close:()V
33: aload 4
aconst_null
aload 7
invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 7 34: StackMap locals:
StackMap stack:
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 35 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 35 1 message Lcom/mongodb/internal/connection/CommandMessage;
0 35 2 decoder Lorg/bson/codecs/Decoder<TT;>;
0 35 3 sessionContext Lcom/mongodb/session/SessionContext;
0 35 4 callback Lcom/mongodb/async/SingleResultCallback<TT;>;
5 35 5 bsonOutput Lcom/mongodb/connection/ByteBufferBsonOutput;
6 35 6 compressedBsonOutput Lcom/mongodb/connection/ByteBufferBsonOutput;
8 29 7 commandEventSender Lcom/mongodb/internal/connection/CommandEventSender;
15 29 8 byteBuffers Ljava/util/List<Lorg/bson/ByteBuf;>;
18 19 9 compressedMessage Lcom/mongodb/internal/connection/CompressedMessage;
31 34 7 t Ljava/lang/Throwable;
Exception table:
from to target type
15 20 20 any
6 29 30 Class java.lang.Throwable
Signature: <T:Ljava/lang/Object;>(Lcom/mongodb/internal/connection/CommandMessage;Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback<TT;>;)V
MethodParameters:
Name Flags
message final
decoder final
sessionContext final
callback final
private void releaseAllBuffers(java.util.List<org.bson.ByteBuf>);
descriptor: (Ljava/util/List;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: com.mongodb.internal.connection.InternalStreamConnection java.util.List top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.bson.ByteBuf
astore 2
start local 2 2: aload 2
invokeinterface org.bson.ByteBuf.release:()V
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 5 1 byteBuffers Ljava/util/List<Lorg/bson/ByteBuf;>;
2 3 2 cur Lorg/bson/ByteBuf;
Signature: (Ljava/util/List<Lorg/bson/ByteBuf;>;)V
MethodParameters:
Name Flags
byteBuffers final
private <T> void sendCommandMessageAsync(int, org.bson.codecs.Decoder<T>, com.mongodb.session.SessionContext, com.mongodb.async.SingleResultCallback<T>, com.mongodb.connection.ByteBufferBsonOutput, com.mongodb.internal.connection.CommandEventSender, );
descriptor: (ILorg/bson/codecs/Decoder;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback;Lcom/mongodb/connection/ByteBufferBsonOutput;Lcom/mongodb/internal/connection/CommandEventSender;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=13, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
aload 5
invokevirtual com.mongodb.connection.ByteBufferBsonOutput.getByteBuffers:()Ljava/util/List;
iload 1
new com.mongodb.internal.connection.InternalStreamConnection$2
dup
aload 0
aload 5
aload 6
aload 4
iload 7
aload 3
iload 1
aload 2
invokespecial com.mongodb.internal.connection.InternalStreamConnection$2.<init>:(Lcom/mongodb/internal/connection/InternalStreamConnection;Lcom/mongodb/connection/ByteBufferBsonOutput;Lcom/mongodb/internal/connection/CommandEventSender;Lcom/mongodb/async/SingleResultCallback;ZLcom/mongodb/session/SessionContext;ILorg/bson/codecs/Decoder;)V
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.sendMessageAsync:(Ljava/util/List;ILcom/mongodb/async/SingleResultCallback;)V
1: 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 2 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 2 1 messageId I
0 2 2 decoder Lorg/bson/codecs/Decoder<TT;>;
0 2 3 sessionContext Lcom/mongodb/session/SessionContext;
0 2 4 callback Lcom/mongodb/async/SingleResultCallback<TT;>;
0 2 5 bsonOutput Lcom/mongodb/connection/ByteBufferBsonOutput;
0 2 6 commandEventSender Lcom/mongodb/internal/connection/CommandEventSender;
0 2 7 responseExpected Z
Signature: <T:Ljava/lang/Object;>(ILorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/session/SessionContext;Lcom/mongodb/async/SingleResultCallback<TT;>;Lcom/mongodb/connection/ByteBufferBsonOutput;Lcom/mongodb/internal/connection/CommandEventSender;Z)V
MethodParameters:
Name Flags
messageId final
decoder final
sessionContext final
callback final
bsonOutput final
commandEventSender final
responseExpected final
private <T> T getCommandResult(org.bson.codecs.Decoder<T>, com.mongodb.internal.connection.ResponseBuffers, );
descriptor: (Lorg/bson/codecs/Decoder;Lcom/mongodb/internal/connection/ResponseBuffers;I)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new com.mongodb.internal.connection.ReplyMessage
dup
aload 2
aload 1
iload 3
i2l
invokespecial com.mongodb.internal.connection.ReplyMessage.<init>:(Lcom/mongodb/internal/connection/ResponseBuffers;Lorg/bson/codecs/Decoder;J)V
invokevirtual com.mongodb.internal.connection.ReplyMessage.getDocuments:()Ljava/util/List;
iconst_0
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
astore 4
start local 4 1: aload 2
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.description:Lcom/mongodb/connection/ConnectionDescription;
invokevirtual com.mongodb.connection.ConnectionDescription.getServerAddress:()Lcom/mongodb/ServerAddress;
invokestatic com.mongodb.internal.connection.ProtocolHelper.createSpecialWriteConcernException:(Lcom/mongodb/internal/connection/ResponseBuffers;Lcom/mongodb/ServerAddress;)Lcom/mongodb/MongoException;
astore 5
start local 5 2: aload 5
ifnull 4
3: new com.mongodb.internal.connection.MongoWriteConcernWithResponseException
dup
aload 5
aload 4
invokespecial com.mongodb.internal.connection.MongoWriteConcernWithResponseException.<init>:(Lcom/mongodb/MongoException;Ljava/lang/Object;)V
athrow
4: StackMap locals: java.lang.Object com.mongodb.MongoException
StackMap stack:
aload 4
areturn
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/internal/connection/InternalStreamConnection;
0 5 1 decoder Lorg/bson/codecs/Decoder<TT;>;
0 5 2 responseBuffers Lcom/mongodb/internal/connection/ResponseBuffers;
0 5 3 messageId I
1 5 4 result TT;
2 5 5 writeConcernBasedError Lcom/mongodb/MongoException;
Signature: <T:Ljava/lang/Object;>(Lorg/bson/codecs/Decoder<TT;>;Lcom/mongodb/internal/connection/ResponseBuffers;I)TT;
MethodParameters:
Name Flags
decoder final
responseBuffers final
messageId final
public void sendMessage(java.util.List<org.bson.ByteBuf>, );
descriptor: (Ljava/util/List;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: ldc "stream is open"
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.stream:Lcom/mongodb/connection/Stream;
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.isClosed:()Z
ifeq 3
2: new com.mongodb.MongoSocketClosedException
dup
ldc "Cannot write to a closed stream"
aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.getServerAddress:()Lcom/mongodb/ServerAddress;
invokespecial com.mongodb.MongoSocketClosedException.<init>:(Ljava/lang/String;Lcom/mongodb/ServerAddress;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.stream:Lcom/mongodb/connection/Stream;
aload 1
invokeinterface com.mongodb.connection.Stream.write:(Ljava/util/List;)V
4: goto 8
StackMap locals:
StackMap stack: java.lang.Exception
5: astore 3
start local 3 6: aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.close:()V
7: aload 0
aload 3
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.translateWriteException:(Ljava/lang/Throwable;)Lcom/mongodb/MongoException;
athrow
end local 3 8: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 9 1 byteBuffers Ljava/util/List<Lorg/bson/ByteBuf;>;
0 9 2 lastRequestId I
6 8 3 e Ljava/lang/Exception;
Exception table:
from to target type
3 4 5 Class java.lang.Exception
Signature: (Ljava/util/List<Lorg/bson/ByteBuf;>;I)V
MethodParameters:
Name Flags
byteBuffers final
lastRequestId final
public com.mongodb.internal.connection.ResponseBuffers receiveMessage(int);
descriptor: (I)Lcom/mongodb/internal/connection/ResponseBuffers;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: ldc "stream is open"
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.stream:Lcom/mongodb/connection/Stream;
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.isClosed:()Z
ifeq 3
2: new com.mongodb.MongoSocketClosedException
dup
ldc "Cannot read from a closed stream"
aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.getServerAddress:()Lcom/mongodb/ServerAddress;
invokespecial com.mongodb.MongoSocketClosedException.<init>:(Ljava/lang/String;Lcom/mongodb/ServerAddress;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.receiveResponseBuffers:()Lcom/mongodb/internal/connection/ResponseBuffers;
4: areturn
5: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
start local 2 6: aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.close:()V
7: aload 0
aload 2
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.translateReadException:(Ljava/lang/Throwable;)Lcom/mongodb/MongoException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 8 1 responseTo I
6 8 2 t Ljava/lang/Throwable;
Exception table:
from to target type
3 4 5 Class java.lang.Throwable
MethodParameters:
Name Flags
responseTo final
public void sendMessageAsync(java.util.List<org.bson.ByteBuf>, int, com.mongodb.async.SingleResultCallback<java.lang.Void>);
descriptor: (Ljava/util/List;ILcom/mongodb/async/SingleResultCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: ldc "stream is open"
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.stream:Lcom/mongodb/connection/Stream;
aload 3
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;Lcom/mongodb/async/SingleResultCallback;)Ljava/lang/Object;
pop
1: aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.isClosed:()Z
ifeq 4
2: aload 3
aconst_null
new com.mongodb.MongoSocketClosedException
dup
ldc "Can not read from a closed socket"
aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.getServerAddress:()Lcom/mongodb/ServerAddress;
invokespecial com.mongodb.MongoSocketClosedException.<init>:(Ljava/lang/String;Lcom/mongodb/ServerAddress;)V
invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
3: return
4: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 3
getstatic com.mongodb.internal.connection.InternalStreamConnection.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;
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.writeAsync:(Ljava/util/List;Lcom/mongodb/async/SingleResultCallback;)V
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/internal/connection/InternalStreamConnection;
0 6 1 byteBuffers Ljava/util/List<Lorg/bson/ByteBuf;>;
0 6 2 lastRequestId I
0 6 3 callback Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
Signature: (Ljava/util/List<Lorg/bson/ByteBuf;>;ILcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
MethodParameters:
Name Flags
byteBuffers final
lastRequestId final
callback final
private void writeAsync(java.util.List<org.bson.ByteBuf>, com.mongodb.async.SingleResultCallback<java.lang.Void>);
descriptor: (Ljava/util/List;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
getfield com.mongodb.internal.connection.InternalStreamConnection.stream:Lcom/mongodb/connection/Stream;
aload 1
new com.mongodb.internal.connection.InternalStreamConnection$3
dup
aload 0
aload 2
invokespecial com.mongodb.internal.connection.InternalStreamConnection$3.<init>:(Lcom/mongodb/internal/connection/InternalStreamConnection;Lcom/mongodb/async/SingleResultCallback;)V
invokeinterface com.mongodb.connection.Stream.writeAsync:(Ljava/util/List;Lcom/mongodb/connection/AsyncCompletionHandler;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 2 1 byteBuffers Ljava/util/List<Lorg/bson/ByteBuf;>;
0 2 2 callback Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;
Signature: (Ljava/util/List<Lorg/bson/ByteBuf;>;Lcom/mongodb/async/SingleResultCallback<Ljava/lang/Void;>;)V
MethodParameters:
Name Flags
byteBuffers final
callback final
public void receiveMessageAsync(int, com.mongodb.async.SingleResultCallback<com.mongodb.internal.connection.ResponseBuffers>);
descriptor: (ILcom/mongodb/async/SingleResultCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=3, args_size=3
start local 0 start local 1 start local 2 0: ldc "stream is open"
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.stream:Lcom/mongodb/connection/Stream;
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack: java.lang.String
1: iconst_0
StackMap locals: com.mongodb.internal.connection.InternalStreamConnection int com.mongodb.async.SingleResultCallback
StackMap stack: java.lang.String int
2: aload 2
invokestatic com.mongodb.assertions.Assertions.isTrue:(Ljava/lang/String;ZLcom/mongodb/async/SingleResultCallback;)V
3: aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.isClosed:()Z
ifeq 6
4: aload 2
aconst_null
new com.mongodb.MongoSocketClosedException
dup
ldc "Can not read from a closed socket"
aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.getServerAddress:()Lcom/mongodb/ServerAddress;
invokespecial com.mongodb.MongoSocketClosedException.<init>:(Ljava/lang/String;Lcom/mongodb/ServerAddress;)V
invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
5: return
6: StackMap locals:
StackMap stack:
getstatic com.mongodb.internal.connection.InternalStreamConnection.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
invokeinterface com.mongodb.diagnostics.logging.Logger.isTraceEnabled:()Z
ifeq 8
7: getstatic com.mongodb.internal.connection.InternalStreamConnection.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
ldc "Start receiving response on %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.getId:()Lcom/mongodb/connection/ConnectionId;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface com.mongodb.diagnostics.logging.Logger.trace:(Ljava/lang/String;)V
8: StackMap locals:
StackMap stack:
aload 0
bipush 16
new com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback
dup
aload 0
new com.mongodb.internal.connection.InternalStreamConnection$4
dup
aload 0
aload 2
invokespecial com.mongodb.internal.connection.InternalStreamConnection$4.<init>:(Lcom/mongodb/internal/connection/InternalStreamConnection;Lcom/mongodb/async/SingleResultCallback;)V
invokespecial com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback.<init>:(Lcom/mongodb/internal/connection/InternalStreamConnection;Lcom/mongodb/async/SingleResultCallback;)V
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.readAsync:(ILcom/mongodb/async/SingleResultCallback;)V
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 10 1 responseTo I
0 10 2 callback Lcom/mongodb/async/SingleResultCallback<Lcom/mongodb/internal/connection/ResponseBuffers;>;
Signature: (ILcom/mongodb/async/SingleResultCallback<Lcom/mongodb/internal/connection/ResponseBuffers;>;)V
MethodParameters:
Name Flags
responseTo final
callback final
private void readAsync(int, com.mongodb.async.SingleResultCallback<org.bson.ByteBuf>);
descriptor: (ILcom/mongodb/async/SingleResultCallback;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.isClosed:()Z
ifeq 3
1: aload 2
aconst_null
new com.mongodb.MongoSocketClosedException
dup
ldc "Cannot read from a closed stream"
aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.getServerAddress:()Lcom/mongodb/ServerAddress;
invokespecial com.mongodb.MongoSocketClosedException.<init>:(Ljava/lang/String;Lcom/mongodb/ServerAddress;)V
invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.stream:Lcom/mongodb/connection/Stream;
iload 1
new com.mongodb.internal.connection.InternalStreamConnection$5
dup
aload 0
aload 2
invokespecial com.mongodb.internal.connection.InternalStreamConnection$5.<init>:(Lcom/mongodb/internal/connection/InternalStreamConnection;Lcom/mongodb/async/SingleResultCallback;)V
invokeinterface com.mongodb.connection.Stream.readAsync:(ILcom/mongodb/connection/AsyncCompletionHandler;)V
4: goto 7
StackMap locals:
StackMap stack: java.lang.Exception
5: astore 3
start local 3 6: aload 2
aconst_null
aload 0
aload 3
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.translateReadException:(Ljava/lang/Throwable;)Lcom/mongodb/MongoException;
invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 3 7: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 8 1 numBytes I
0 8 2 callback Lcom/mongodb/async/SingleResultCallback<Lorg/bson/ByteBuf;>;
6 7 3 e Ljava/lang/Exception;
Exception table:
from to target type
3 4 5 Class java.lang.Exception
Signature: (ILcom/mongodb/async/SingleResultCallback<Lorg/bson/ByteBuf;>;)V
MethodParameters:
Name Flags
numBytes final
callback final
private com.mongodb.connection.ConnectionId getId();
descriptor: ()Lcom/mongodb/connection/ConnectionId;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.description:Lcom/mongodb/connection/ConnectionDescription;
invokevirtual com.mongodb.connection.ConnectionDescription.getConnectionId:()Lcom/mongodb/connection/ConnectionId;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
private com.mongodb.ServerAddress getServerAddress();
descriptor: ()Lcom/mongodb/ServerAddress;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.description:Lcom/mongodb/connection/ConnectionDescription;
invokevirtual com.mongodb.connection.ConnectionDescription.getServerAddress:()Lcom/mongodb/ServerAddress;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
private void updateSessionContext(com.mongodb.session.SessionContext, com.mongodb.internal.connection.ResponseBuffers);
descriptor: (Lcom/mongodb/session/SessionContext;Lcom/mongodb/internal/connection/ResponseBuffers;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokestatic com.mongodb.internal.connection.ProtocolHelper.getOperationTime:(Lcom/mongodb/internal/connection/ResponseBuffers;)Lorg/bson/BsonTimestamp;
invokeinterface com.mongodb.session.SessionContext.advanceOperationTime:(Lorg/bson/BsonTimestamp;)V
1: aload 1
aload 2
invokestatic com.mongodb.internal.connection.ProtocolHelper.getClusterTime:(Lcom/mongodb/internal/connection/ResponseBuffers;)Lorg/bson/BsonDocument;
invokeinterface com.mongodb.session.SessionContext.advanceClusterTime:(Lorg/bson/BsonDocument;)V
2: aload 1
invokeinterface com.mongodb.session.SessionContext.hasActiveTransaction:()Z
ifeq 6
3: aload 2
invokestatic com.mongodb.internal.connection.ProtocolHelper.getRecoveryToken:(Lcom/mongodb/internal/connection/ResponseBuffers;)Lorg/bson/BsonDocument;
astore 3
start local 3 4: aload 3
ifnull 6
5: aload 1
aload 3
invokeinterface com.mongodb.session.SessionContext.setRecoveryToken:(Lorg/bson/BsonDocument;)V
end local 3 6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 7 1 sessionContext Lcom/mongodb/session/SessionContext;
0 7 2 responseBuffers Lcom/mongodb/internal/connection/ResponseBuffers;
4 6 3 recoveryToken Lorg/bson/BsonDocument;
MethodParameters:
Name Flags
sessionContext final
responseBuffers final
private com.mongodb.MongoException translateWriteException(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Lcom/mongodb/MongoException;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof com.mongodb.MongoException
ifeq 2
1: aload 1
checkcast com.mongodb.MongoException
areturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof java.io.IOException
ifeq 4
3: new com.mongodb.MongoSocketWriteException
dup
ldc "Exception sending message"
aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.getServerAddress:()Lcom/mongodb/ServerAddress;
aload 1
invokespecial com.mongodb.MongoSocketWriteException.<init>:(Ljava/lang/String;Lcom/mongodb/ServerAddress;Ljava/lang/Throwable;)V
areturn
4: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.InterruptedException
ifeq 6
5: new com.mongodb.MongoInternalException
dup
ldc "Thread interrupted exception"
aload 1
invokespecial com.mongodb.MongoInternalException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
areturn
6: StackMap locals:
StackMap stack:
new com.mongodb.MongoInternalException
dup
ldc "Unexpected exception"
aload 1
invokespecial com.mongodb.MongoInternalException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 7 1 e Ljava/lang/Throwable;
MethodParameters:
Name Flags
e final
private com.mongodb.MongoException translateReadException(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Lcom/mongodb/MongoException;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof com.mongodb.MongoException
ifeq 2
1: aload 1
checkcast com.mongodb.MongoException
areturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof java.net.SocketTimeoutException
ifeq 4
3: new com.mongodb.MongoSocketReadTimeoutException
dup
ldc "Timeout while receiving message"
aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.getServerAddress:()Lcom/mongodb/ServerAddress;
aload 1
invokespecial com.mongodb.MongoSocketReadTimeoutException.<init>:(Ljava/lang/String;Lcom/mongodb/ServerAddress;Ljava/lang/Throwable;)V
areturn
4: StackMap locals:
StackMap stack:
aload 1
instanceof java.io.InterruptedIOException
ifeq 6
5: new com.mongodb.MongoInterruptedException
dup
ldc "Interrupted while receiving message"
aload 1
checkcast java.io.InterruptedIOException
invokespecial com.mongodb.MongoInterruptedException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
areturn
6: StackMap locals:
StackMap stack:
aload 1
instanceof java.nio.channels.ClosedByInterruptException
ifeq 8
7: new com.mongodb.MongoInterruptedException
dup
ldc "Interrupted while receiving message"
aload 1
checkcast java.nio.channels.ClosedByInterruptException
invokespecial com.mongodb.MongoInterruptedException.<init>:(Ljava/lang/String;Ljava/lang/Exception;)V
areturn
8: StackMap locals:
StackMap stack:
aload 1
instanceof java.io.IOException
ifeq 10
9: new com.mongodb.MongoSocketReadException
dup
ldc "Exception receiving message"
aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.getServerAddress:()Lcom/mongodb/ServerAddress;
aload 1
invokespecial com.mongodb.MongoSocketReadException.<init>:(Ljava/lang/String;Lcom/mongodb/ServerAddress;Ljava/lang/Throwable;)V
areturn
10: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.RuntimeException
ifeq 12
11: new com.mongodb.MongoInternalException
dup
ldc "Unexpected runtime exception"
aload 1
invokespecial com.mongodb.MongoInternalException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
areturn
12: StackMap locals:
StackMap stack:
aload 1
instanceof java.lang.InterruptedException
ifeq 14
13: new com.mongodb.MongoInternalException
dup
ldc "Interrupted exception"
aload 1
invokespecial com.mongodb.MongoInternalException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
areturn
14: StackMap locals:
StackMap stack:
new com.mongodb.MongoInternalException
dup
ldc "Unexpected exception"
aload 1
invokespecial com.mongodb.MongoInternalException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 15 1 e Ljava/lang/Throwable;
MethodParameters:
Name Flags
e final
private com.mongodb.internal.connection.ResponseBuffers receiveResponseBuffers();
descriptor: ()Lcom/mongodb/internal/connection/ResponseBuffers;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.stream:Lcom/mongodb/connection/Stream;
bipush 16
invokeinterface com.mongodb.connection.Stream.read:(I)Lorg/bson/ByteBuf;
astore 1
start local 1 1: new com.mongodb.internal.connection.MessageHeader
dup
aload 1
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.description:Lcom/mongodb/connection/ConnectionDescription;
invokevirtual com.mongodb.connection.ConnectionDescription.getMaxMessageSize:()I
invokespecial com.mongodb.internal.connection.MessageHeader.<init>:(Lorg/bson/ByteBuf;I)V
astore 2
start local 2 2: goto 6
end local 2 StackMap locals: com.mongodb.internal.connection.InternalStreamConnection org.bson.ByteBuf
StackMap stack: java.lang.Throwable
3: astore 3
4: aload 1
invokeinterface org.bson.ByteBuf.release:()V
5: aload 3
athrow
start local 2 6: StackMap locals: com.mongodb.internal.connection.MessageHeader
StackMap stack:
aload 1
invokeinterface org.bson.ByteBuf.release:()V
7: aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.stream:Lcom/mongodb/connection/Stream;
aload 2
invokevirtual com.mongodb.internal.connection.MessageHeader.getMessageLength:()I
bipush 16
isub
invokeinterface com.mongodb.connection.Stream.read:(I)Lorg/bson/ByteBuf;
astore 3
start local 3 8: aload 2
invokevirtual com.mongodb.internal.connection.MessageHeader.getOpCode:()I
getstatic com.mongodb.internal.connection.OpCode.OP_COMPRESSED:Lcom/mongodb/internal/connection/OpCode;
invokevirtual com.mongodb.internal.connection.OpCode.getValue:()I
if_icmpne 15
9: new com.mongodb.internal.connection.CompressedHeader
dup
aload 3
aload 2
invokespecial com.mongodb.internal.connection.CompressedHeader.<init>:(Lorg/bson/ByteBuf;Lcom/mongodb/internal/connection/MessageHeader;)V
astore 4
start local 4 10: aload 0
aload 4
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.getCompressor:(Lcom/mongodb/internal/connection/CompressedHeader;)Lcom/mongodb/internal/connection/Compressor;
astore 5
start local 5 11: aload 0
aload 4
invokevirtual com.mongodb.internal.connection.CompressedHeader.getUncompressedSize:()I
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.getBuffer:(I)Lorg/bson/ByteBuf;
astore 6
start local 6 12: aload 5
aload 3
aload 6
invokevirtual com.mongodb.internal.connection.Compressor.uncompress:(Lorg/bson/ByteBuf;Lorg/bson/ByteBuf;)V
13: aload 6
invokeinterface org.bson.ByteBuf.flip:()Lorg/bson/ByteBuf;
pop
14: new com.mongodb.internal.connection.ResponseBuffers
dup
new com.mongodb.internal.connection.ReplyHeader
dup
aload 6
aload 4
invokespecial com.mongodb.internal.connection.ReplyHeader.<init>:(Lorg/bson/ByteBuf;Lcom/mongodb/internal/connection/CompressedHeader;)V
aload 6
invokespecial com.mongodb.internal.connection.ResponseBuffers.<init>:(Lcom/mongodb/internal/connection/ReplyHeader;Lorg/bson/ByteBuf;)V
areturn
end local 6 end local 5 end local 4 15: StackMap locals: org.bson.ByteBuf
StackMap stack:
new com.mongodb.internal.connection.ResponseBuffers
dup
new com.mongodb.internal.connection.ReplyHeader
dup
aload 3
aload 2
invokespecial com.mongodb.internal.connection.ReplyHeader.<init>:(Lorg/bson/ByteBuf;Lcom/mongodb/internal/connection/MessageHeader;)V
aload 3
invokespecial com.mongodb.internal.connection.ResponseBuffers.<init>:(Lcom/mongodb/internal/connection/ReplyHeader;Lorg/bson/ByteBuf;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
1 16 1 messageHeaderBuffer Lorg/bson/ByteBuf;
2 3 2 messageHeader Lcom/mongodb/internal/connection/MessageHeader;
6 16 2 messageHeader Lcom/mongodb/internal/connection/MessageHeader;
8 16 3 messageBuffer Lorg/bson/ByteBuf;
10 15 4 compressedHeader Lcom/mongodb/internal/connection/CompressedHeader;
11 15 5 compressor Lcom/mongodb/internal/connection/Compressor;
12 15 6 buffer Lorg/bson/ByteBuf;
Exception table:
from to target type
1 3 3 any
Exceptions:
throws java.io.IOException
private com.mongodb.internal.connection.Compressor (com.mongodb.internal.connection.CompressedHeader);
descriptor: (Lcom/mongodb/internal/connection/CompressedHeader;)Lcom/mongodb/internal/connection/Compressor;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.compressorMap:Ljava/util/Map;
aload 1
invokevirtual com.mongodb.internal.connection.CompressedHeader.getCompressorId:()B
invokestatic java.lang.Byte.valueOf:(B)Ljava/lang/Byte;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.mongodb.internal.connection.Compressor
astore 2
start local 2 1: aload 2
ifnonnull 3
2: new com.mongodb.MongoClientException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported compressor with identifier "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual com.mongodb.internal.connection.CompressedHeader.getCompressorId:()B
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial com.mongodb.MongoClientException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: com.mongodb.internal.connection.Compressor
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 4 1 compressedHeader Lcom/mongodb/internal/connection/CompressedHeader;
1 4 2 compressor Lcom/mongodb/internal/connection/Compressor;
MethodParameters:
Name Flags
compressedHeader final
public org.bson.ByteBuf getBuffer(int);
descriptor: (I)Lorg/bson/ByteBuf;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: ldc "open"
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.stream:Lcom/mongodb/connection/Stream;
invokestatic com.mongodb.assertions.Assertions.notNull:(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.stream:Lcom/mongodb/connection/Stream;
iload 1
invokeinterface com.mongodb.connection.Stream.getBuffer:(I)Lorg/bson/ByteBuf;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 2 1 size I
MethodParameters:
Name Flags
size final
private com.mongodb.internal.connection.CommandEventSender createCommandEventSender(com.mongodb.internal.connection.CommandMessage, com.mongodb.connection.ByteBufferBsonOutput);
descriptor: (Lcom/mongodb/internal/connection/CommandMessage;Lcom/mongodb/connection/ByteBufferBsonOutput;)Lcom/mongodb/internal/connection/CommandEventSender;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.mongodb.internal.connection.InternalStreamConnection.opened:()Z
ifeq 4
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.commandListener:Lcom/mongodb/event/CommandListener;
ifnonnull 1
getstatic com.mongodb.internal.connection.InternalStreamConnection.COMMAND_PROTOCOL_LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
invokeinterface com.mongodb.diagnostics.logging.Logger.isDebugEnabled:()Z
ifeq 4
1: StackMap locals:
StackMap stack:
new com.mongodb.internal.connection.LoggingCommandEventSender
dup
getstatic com.mongodb.internal.connection.InternalStreamConnection.SECURITY_SENSITIVE_COMMANDS:Ljava/util/Set;
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.description:Lcom/mongodb/connection/ConnectionDescription;
aload 0
getfield com.mongodb.internal.connection.InternalStreamConnection.commandListener:Lcom/mongodb/event/CommandListener;
aload 1
aload 2
2: getstatic com.mongodb.internal.connection.InternalStreamConnection.COMMAND_PROTOCOL_LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
3: invokespecial com.mongodb.internal.connection.LoggingCommandEventSender.<init>:(Ljava/util/Set;Lcom/mongodb/connection/ConnectionDescription;Lcom/mongodb/event/CommandListener;Lcom/mongodb/internal/connection/CommandMessage;Lcom/mongodb/connection/ByteBufferBsonOutput;Lcom/mongodb/diagnostics/logging/Logger;)V
areturn
4: StackMap locals:
StackMap stack:
new com.mongodb.internal.connection.NoOpCommandEventSender
dup
invokespecial com.mongodb.internal.connection.NoOpCommandEventSender.<init>:()V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/mongodb/internal/connection/InternalStreamConnection;
0 5 1 message Lcom/mongodb/internal/connection/CommandMessage;
0 5 2 bsonOutput Lcom/mongodb/connection/ByteBufferBsonOutput;
MethodParameters:
Name Flags
message final
bsonOutput final
}
SourceFile: "InternalStreamConnection.java"
NestMembers:
com.mongodb.internal.connection.InternalStreamConnection$1 com.mongodb.internal.connection.InternalStreamConnection$1$1 com.mongodb.internal.connection.InternalStreamConnection$2 com.mongodb.internal.connection.InternalStreamConnection$2$1 com.mongodb.internal.connection.InternalStreamConnection$3 com.mongodb.internal.connection.InternalStreamConnection$4 com.mongodb.internal.connection.InternalStreamConnection$5 com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback$MessageCallback
InnerClasses:
com.mongodb.internal.connection.InternalStreamConnection$1
com.mongodb.internal.connection.InternalStreamConnection$2
com.mongodb.internal.connection.InternalStreamConnection$3
com.mongodb.internal.connection.InternalStreamConnection$4
com.mongodb.internal.connection.InternalStreamConnection$5
private MessageHeaderCallback = com.mongodb.internal.connection.InternalStreamConnection$MessageHeaderCallback of com.mongodb.internal.connection.InternalStreamConnection
RuntimeVisibleAnnotations:
com.mongodb.annotations.NotThreadSafe()