class com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1 implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1
super_class: java.lang.Object
{
final com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream this$1;
descriptor: Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private final java.nio.channels.SocketChannel val$socketChannel;
descriptor: Ljava/nio/channels/SocketChannel;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final com.mongodb.connection.AsyncCompletionHandler val$handler;
descriptor: Lcom/mongodb/connection/AsyncCompletionHandler;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream, java.nio.channels.SocketChannel, com.mongodb.connection.AsyncCompletionHandler);
descriptor: (Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream;Ljava/nio/channels/SocketChannel;Lcom/mongodb/connection/AsyncCompletionHandler;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 0: aload 0
aload 1
putfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1.this$1:Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream;
aload 0
aload 2
putfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1.val$socketChannel:Ljava/nio/channels/SocketChannel;
aload 0
aload 3
putfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1.val$handler:Lcom/mongodb/connection/AsyncCompletionHandler;
aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream$1;
MethodParameters:
Name Flags
this$0 final
val$socketChannel final
val$handler final
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=1
start local 0 0: aload 0
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1.val$socketChannel:Ljava/nio/channels/SocketChannel;
invokevirtual java.nio.channels.SocketChannel.finishConnect:()Z
ifne 2
1: new com.mongodb.MongoSocketOpenException
dup
ldc "Failed to finish connect"
aload 0
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1.this$1:Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream;
invokevirtual com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.getServerAddress:()Lcom/mongodb/ServerAddress;
invokespecial com.mongodb.MongoSocketOpenException.<init>:(Ljava/lang/String;Lcom/mongodb/ServerAddress;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1.this$1:Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream;
invokevirtual com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.getSslContext:()Ljavax/net/ssl/SSLContext;
aload 0
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1.this$1:Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream;
invokevirtual com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.getServerAddress:()Lcom/mongodb/ServerAddress;
invokevirtual com.mongodb.ServerAddress.getHost:()Ljava/lang/String;
3: aload 0
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1.this$1:Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream;
invokevirtual com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.getServerAddress:()Lcom/mongodb/ServerAddress;
invokevirtual com.mongodb.ServerAddress.getPort:()I
4: invokevirtual javax.net.ssl.SSLContext.createSSLEngine:(Ljava/lang/String;I)Ljavax/net/ssl/SSLEngine;
astore 1
start local 1 5: aload 1
iconst_1
invokevirtual javax.net.ssl.SSLEngine.setUseClientMode:(Z)V
6: aload 1
invokevirtual javax.net.ssl.SSLEngine.getSSLParameters:()Ljavax/net/ssl/SSLParameters;
astore 2
start local 2 7: aload 0
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1.this$1:Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream;
invokevirtual com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.getServerAddress:()Lcom/mongodb/ServerAddress;
invokevirtual com.mongodb.ServerAddress.getHost:()Ljava/lang/String;
aload 2
invokestatic com.mongodb.internal.connection.SslHelper.enableSni:(Ljava/lang/String;Ljavax/net/ssl/SSLParameters;)V
8: aload 0
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1.this$1:Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream;
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.sslSettings:Lcom/mongodb/connection/SslSettings;
invokevirtual com.mongodb.connection.SslSettings.isInvalidHostNameAllowed:()Z
ifne 10
9: aload 2
invokestatic com.mongodb.internal.connection.SslHelper.enableHostNameVerification:(Ljavax/net/ssl/SSLParameters;)V
10: StackMap locals: javax.net.ssl.SSLEngine javax.net.ssl.SSLParameters
StackMap stack:
aload 1
aload 2
invokevirtual javax.net.ssl.SSLEngine.setSSLParameters:(Ljavax/net/ssl/SSLParameters;)V
11: new com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$BufferProviderAllocator
dup
aload 0
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1.this$1:Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream;
invokespecial com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$BufferProviderAllocator.<init>:(Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream;)V
astore 3
start local 3 12: aload 0
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1.val$socketChannel:Ljava/nio/channels/SocketChannel;
aload 1
invokestatic com.mongodb.internal.connection.tlschannel.ClientTlsChannel.newBuilder:(Ljava/nio/channels/ByteChannel;Ljavax/net/ssl/SSLEngine;)Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel$Builder;
13: aload 3
invokevirtual com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder.withEncryptedBufferAllocator:(Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;)Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder;
checkcast com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder
14: aload 3
invokevirtual com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder.withPlainBufferAllocator:(Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;)Lcom/mongodb/internal/connection/tlschannel/TlsChannelBuilder;
checkcast com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder
15: invokevirtual com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder.build:()Lcom/mongodb/internal/connection/tlschannel/ClientTlsChannel;
16: astore 4
start local 4 17: aload 0
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1.this$1:Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream;
new com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel
dup
aload 0
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1.this$1:Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream;
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.group:Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup;
aload 4
aload 0
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1.val$socketChannel:Ljava/nio/channels/SocketChannel;
invokespecial com.mongodb.internal.connection.tlschannel.async.AsynchronousTlsChannel.<init>:(Lcom/mongodb/internal/connection/tlschannel/async/AsynchronousTlsChannelGroup;Lcom/mongodb/internal/connection/tlschannel/TlsChannel;Ljava/nio/channels/SocketChannel;)V
invokestatic com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.access$0:(Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream;Lcom/mongodb/internal/connection/ExtendedAsynchronousByteChannel;)V
18: aload 0
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1.val$handler:Lcom/mongodb/connection/AsyncCompletionHandler;
aconst_null
invokeinterface com.mongodb.connection.AsyncCompletionHandler.completed:(Ljava/lang/Object;)V
end local 4 end local 3 end local 2 end local 1 19: goto 25
StackMap locals: com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1
StackMap stack: java.io.IOException
20: astore 1
start local 1 21: aload 0
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1.val$handler:Lcom/mongodb/connection/AsyncCompletionHandler;
new com.mongodb.MongoSocketOpenException
dup
ldc "Exception opening socket"
aload 0
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1.this$1:Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream;
invokevirtual com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.getServerAddress:()Lcom/mongodb/ServerAddress;
aload 1
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 1 22: goto 25
23: StackMap locals:
StackMap stack: java.lang.Throwable
astore 1
start local 1 24: aload 0
getfield com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream$1.val$handler:Lcom/mongodb/connection/AsyncCompletionHandler;
aload 1
invokeinterface com.mongodb.connection.AsyncCompletionHandler.failed:(Ljava/lang/Throwable;)V
end local 1 25: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lcom/mongodb/connection/TlsChannelStreamFactoryFactory$TlsChannelStream$1;
5 19 1 sslEngine Ljavax/net/ssl/SSLEngine;
7 19 2 sslParameters Ljavax/net/ssl/SSLParameters;
12 19 3 bufferAllocator Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;
17 19 4 tlsChannel Lcom/mongodb/internal/connection/tlschannel/TlsChannel;
21 22 1 e Ljava/io/IOException;
24 25 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 19 20 Class java.io.IOException
0 19 23 Class java.lang.Throwable
}
SourceFile: "TlsChannelStreamFactoryFactory.java"
EnclosingMethod: com.mongodb.connection.TlsChannelStreamFactoryFactory$TlsChannelStream.openAsync:(Lcom/mongodb/connection/AsyncCompletionHandler;)V
NestHost: com.mongodb.connection.TlsChannelStreamFactoryFactory
InnerClasses:
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
public final Builder = com.mongodb.internal.connection.tlschannel.ClientTlsChannel$Builder of com.mongodb.internal.connection.tlschannel.ClientTlsChannel