class com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream extends com.mongodb.internal.connection.AsynchronousChannelStream implements com.mongodb.connection.Stream
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream
super_class: com.mongodb.internal.connection.AsynchronousChannelStream
{
private final com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup group;
descriptor: Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.connection.TlsChannelStreamFactoryFactory$SelectorMonitor selectorMonitor;
descriptor: Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$SelectorMonitor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.connection.SslSettings sslSettings;
descriptor: Lcom/mongodb/connection/SslSettings;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(com.mongodb.ServerAddress, com.mongodb.connection.SocketSettings, com.mongodb.connection.SslSettings, com.mongodb.connection.BufferProvider, com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannelGroup, com.mongodb.connection.TlsChannelStreamFactoryFactory$SelectorMonitor);
descriptor: (Lcom/mongodb/ServerAddress;Lcom/mongodb/connection/SocketSettings;Lcom/mongodb/connection/SslSettings;Lcom/mongodb/connection/BufferProvider;Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup;Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$SelectorMonitor;)V
flags: (0x0000)
Code:
stack=4, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
aload 1
aload 2
aload 4
invokespecial com.mongodb.internal.connection.AsynchronousChannelStream.<init>:(Lcom/mongodb/ServerAddress;Lcom/mongodb/connection/SocketSettings;Lcom/mongodb/connection/BufferProvider;)V
1: aload 0
aload 3
putfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.sslSettings:Lcom/mongodb/connection/SslSettings;
2: aload 0
aload 5
putfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.group:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup;
3: aload 0
aload 6
putfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.selectorMonitor:Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$SelectorMonitor;
4: 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 5 0 this Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream;
0 5 1 serverAddress Lcom/mongodb/ServerAddress;
0 5 2 settings Lcom/mongodb/connection/SocketSettings;
0 5 3 sslSettings Lcom/mongodb/connection/SslSettings;
0 5 4 bufferProvider Lcom/mongodb/connection/BufferProvider;
0 5 5 group Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup;
0 5 6 selectorMonitor Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$SelectorMonitor;
MethodParameters:
Name Flags
serverAddress final
settings final
sslSettings final
bufferProvider final
group final
selectorMonitor final
public void openAsync(com.mongodb.connection.AsyncCompletionHandler<java.lang.Void>);
descriptor: (Lcom/mongodb/connection/AsyncCompletionHandler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: ldc "unopened"
aload 0
invokevirtual com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.getChannel:()Lcom/mongodb/internal/connection/ExtendedAsynchronousByteChannel;
ifnonnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack: java.lang.String
1: iconst_0
StackMap locals: com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream com.mongodb.connection.AsyncCompletionHandler
StackMap stack: java.lang.String int
2: invokestatic com.mongodb.assertions.Assertions.isTrue:(Ljava/lang/String;Z)V
3: invokestatic java.nio.channels.SocketChannel.open:()Ljava/nio/channels/SocketChannel;
astore 2
start local 2 4: aload 2
iconst_0
invokevirtual java.nio.channels.SocketChannel.configureBlocking:(Z)Ljava/nio/channels/SelectableChannel;
pop
5: aload 2
getstatic java.net.StandardSocketOptions.TCP_NODELAY:Ljava/net/SocketOption;
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual java.nio.channels.SocketChannel.setOption:(Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/SocketChannel;
pop
6: aload 2
getstatic java.net.StandardSocketOptions.SO_KEEPALIVE:Ljava/net/SocketOption;
iconst_1
invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
invokevirtual java.nio.channels.SocketChannel.setOption:(Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/SocketChannel;
pop
7: aload 0
invokevirtual com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.getSettings:()Lcom/mongodb/connection/SocketSettings;
invokevirtual com.mongodb.connection.SocketSettings.getReceiveBufferSize:()I
ifle 9
8: aload 2
getstatic java.net.StandardSocketOptions.SO_RCVBUF:Ljava/net/SocketOption;
aload 0
invokevirtual com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.getSettings:()Lcom/mongodb/connection/SocketSettings;
invokevirtual com.mongodb.connection.SocketSettings.getReceiveBufferSize:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.nio.channels.SocketChannel.setOption:(Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/SocketChannel;
pop
9: StackMap locals: java.nio.channels.SocketChannel
StackMap stack:
aload 0
invokevirtual com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.getSettings:()Lcom/mongodb/connection/SocketSettings;
invokevirtual com.mongodb.connection.SocketSettings.getSendBufferSize:()I
ifle 11
10: aload 2
getstatic java.net.StandardSocketOptions.SO_SNDBUF:Ljava/net/SocketOption;
aload 0
invokevirtual com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.getSettings:()Lcom/mongodb/connection/SocketSettings;
invokevirtual com.mongodb.connection.SocketSettings.getSendBufferSize:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual java.nio.channels.SocketChannel.setOption:(Ljava/net/SocketOption;Ljava/lang/Object;)Ljava/nio/channels/SocketChannel;
pop
11: StackMap locals:
StackMap stack:
aload 2
aload 0
invokevirtual com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.getServerAddress:()Lcom/mongodb/ServerAddress;
invokevirtual com.mongodb.ServerAddress.getSocketAddress:()Ljava/net/InetSocketAddress;
invokevirtual java.nio.channels.SocketChannel.connect:(Ljava/net/SocketAddress;)Z
pop
12: aload 0
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.selectorMonitor:Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$SelectorMonitor;
aload 2
new com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1
dup
aload 0
aload 2
aload 1
invokespecial com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1.<init>:(Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream;Ljava/nio/channels/SocketChannel;Lcom/mongodb/connection/AsyncCompletionHandler;)V
invokevirtual com.mongodb.connection.TlsChannelStreamFactoryFactory$SelectorMonitor.register:(Ljava/nio/channels/SocketChannel;Ljava/lang/Runnable;)V
end local 2 13: goto 19
StackMap locals: com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream com.mongodb.connection.AsyncCompletionHandler
StackMap stack: java.io.IOException
14: astore 2
start local 2 15: aload 1
new com.mongodb.MongoSocketOpenException
dup
ldc "Exception opening socket"
aload 0
invokevirtual com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.getServerAddress:()Lcom/mongodb/ServerAddress;
aload 2
invokespecial com.mongodb.MongoSocketOpenException.<init>:(Ljava/lang/String;Lcom/mongodb/ServerAddress;Ljava/lang/Throwable;)V
invokeinterface com.mongodb.connection.AsyncCompletionHandler.failed:(Ljava/lang/Throwable;)V
end local 2 16: goto 19
17: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
start local 2 18: aload 1
aload 2
invokeinterface com.mongodb.connection.AsyncCompletionHandler.failed:(Ljava/lang/Throwable;)V
end local 2 19: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream;
0 20 1 handler Lcom/mongodb/connection/AsyncCompletionHandler<Ljava/lang/Void;>;
4 13 2 socketChannel Ljava/nio/channels/SocketChannel;
15 16 2 e Ljava/io/IOException;
18 19 2 t Ljava/lang/Throwable;
Exception table:
from to target type
3 13 14 Class java.io.IOException
3 13 17 Class java.lang.Throwable
Signature: (Lcom/mongodb/connection/AsyncCompletionHandler<Ljava/lang/Void;>;)V
MethodParameters:
Name Flags
handler final
private javax.net.ssl.SSLContext getSslContext();
descriptor: ()Ljavax/net/ssl/SSLContext;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.sslSettings:Lcom/mongodb/connection/SslSettings;
invokevirtual com.mongodb.connection.SslSettings.getContext:()Ljavax/net/ssl/SSLContext;
ifnonnull 1
invokestatic javax.net.ssl.SSLContext.getDefault:()Ljavax/net/ssl/SSLContext;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.sslSettings:Lcom/mongodb/connection/SslSettings;
invokevirtual com.mongodb.connection.SslSettings.getContext:()Ljavax/net/ssl/SSLContext;
StackMap locals:
StackMap stack: javax.net.ssl.SSLContext
2: areturn
3: StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
astore 1
start local 1 4: new com.mongodb.MongoClientException
dup
ldc "Unable to create default SSLContext"
aload 1
invokespecial com.mongodb.MongoClientException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream;
4 5 1 e Ljava/security/NoSuchAlgorithmException;
Exception table:
from to target type
0 2 3 Class java.security.NoSuchAlgorithmException
static void access$0(com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream, com.mongodb.internal.connection.ExtendedAsynchronousByteChannel);
descriptor: (Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream;Lcom/mongodb/internal/connection/ExtendedAsynchronousByteChannel;)V
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
invokevirtual com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.setChannel:(Lcom/mongodb/internal/connection/ExtendedAsynchronousByteChannel;)V
return
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "TlsChannelStreamFactoryFactory.java"
NestHost: com.mongodb.connection.TlsChannelStreamFactoryFactory
InnerClasses:
private SelectorMonitor = com.mongodb.connection.TlsChannelStreamFactoryFactory$SelectorMonitor of com.mongodb.connection.TlsChannelStreamFactoryFactory
private TlsChannelStream = com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream of com.mongodb.connection.TlsChannelStreamFactoryFactory
com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1
private BufferProviderAllocator = com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$BufferProviderAllocator of com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream