public class com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl implements java.nio.channels.ByteChannel
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl
super_class: java.lang.Object
{
private static final com.mongodb.diagnostics.logging.Logger LOGGER;
descriptor: Lcom/mongodb/diagnostics/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int BUFFERS_INITIAL_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4096
static final int MAX_TLS_PACKET_SIZE;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 17408
private final java.nio.channels.ReadableByteChannel readChannel;
descriptor: Ljava/nio/channels/ReadableByteChannel;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.nio.channels.WritableByteChannel writeChannel;
descriptor: Ljava/nio/channels/WritableByteChannel;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final javax.net.ssl.SSLEngine engine;
descriptor: Ljavax/net/ssl/SSLEngine;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.mongodb.internal.connection.tlschannel.impl.BufferHolder inEncrypted;
descriptor: Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
flags: (0x0002) ACC_PRIVATE
private final java.util.function.Consumer<javax.net.ssl.SSLSession> initSessionCallback;
descriptor: Ljava/util/function/Consumer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/function/Consumer<Ljavax/net/ssl/SSLSession;>;
private final boolean runTasks;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.internal.connection.tlschannel.TrackingAllocator encryptedBufAllocator;
descriptor: Lcom/mongodb/internal/connection/tlschannel/TrackingAllocator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.mongodb.internal.connection.tlschannel.TrackingAllocator plainBufAllocator;
descriptor: Lcom/mongodb/internal/connection/tlschannel/TrackingAllocator;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean waitForCloseConfirmation;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.locks.Lock initLock;
descriptor: Ljava/util/concurrent/locks/Lock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.locks.Lock readLock;
descriptor: Ljava/util/concurrent/locks/Lock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.locks.Lock writeLock;
descriptor: Ljava/util/concurrent/locks/Lock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile boolean negotiated;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean invalid;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean shutdownSent;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean shutdownReceived;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private com.mongodb.internal.connection.tlschannel.impl.BufferHolder inPlain;
descriptor: Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
flags: (0x0002) ACC_PRIVATE
private com.mongodb.internal.connection.tlschannel.impl.BufferHolder outEncrypted;
descriptor: Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
flags: (0x0002) ACC_PRIVATE
private final com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet dummyOut;
descriptor: Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static volatile int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "connection.tls"
invokestatic com.mongodb.diagnostics.logging.Loggers.getLogger:(Ljava/lang/String;)Lcom/mongodb/diagnostics/logging/Logger;
putstatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
1: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.nio.channels.ReadableByteChannel, java.nio.channels.WritableByteChannel, javax.net.ssl.SSLEngine, java.util.Optional<com.mongodb.internal.connection.tlschannel.impl.BufferHolder>, java.util.function.Consumer<javax.net.ssl.SSLSession>, boolean, com.mongodb.internal.connection.tlschannel.TrackingAllocator, com.mongodb.internal.connection.tlschannel.TrackingAllocator, boolean, );
descriptor: (Ljava/nio/channels/ReadableByteChannel;Ljava/nio/channels/WritableByteChannel;Ljavax/net/ssl/SSLEngine;Ljava/util/Optional;Ljava/util/function/Consumer;ZLcom/mongodb/internal/connection/tlschannel/TrackingAllocator;Lcom/mongodb/internal/connection/tlschannel/TrackingAllocator;ZZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=11, args_size=11
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 start local 10 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.initLock:Ljava/util/concurrent/locks/Lock;
2: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
3: aload 0
new java.util.concurrent.locks.ReentrantLock
dup
invokespecial java.util.concurrent.locks.ReentrantLock.<init>:()V
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeLock:Ljava/util/concurrent/locks/Lock;
4: aload 0
iconst_0
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.negotiated:Z
5: aload 0
iconst_0
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.invalid:Z
6: aload 0
iconst_0
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.shutdownSent:Z
7: aload 0
iconst_0
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.shutdownReceived:Z
8: aload 0
new com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
dup
iconst_0
anewarray java.nio.ByteBuffer
invokespecial com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.<init>:([Ljava/nio/ByteBuffer;)V
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.dummyOut:Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;
9: aload 0
aload 1
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readChannel:Ljava/nio/channels/ReadableByteChannel;
10: aload 0
aload 2
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeChannel:Ljava/nio/channels/WritableByteChannel;
11: aload 0
aload 3
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.engine:Ljavax/net/ssl/SSLEngine;
12: aload 0
aload 4
new com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$1
dup
aload 0
aload 8
iload 9
invokespecial com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$1.<init>:(Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;Lcom/mongodb/internal/connection/tlschannel/TrackingAllocator;Z)V
invokevirtual java.util.Optional.orElseGet:(Ljava/util/function/Supplier;)Ljava/lang/Object;
checkcast com.mongodb.internal.connection.tlschannel.impl.BufferHolder
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
13: aload 0
aload 5
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.initSessionCallback:Ljava/util/function/Consumer;
14: aload 0
iload 6
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.runTasks:Z
15: aload 0
aload 7
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.plainBufAllocator:Lcom/mongodb/internal/connection/tlschannel/TrackingAllocator;
16: aload 0
aload 8
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.encryptedBufAllocator:Lcom/mongodb/internal/connection/tlschannel/TrackingAllocator;
17: aload 0
iload 10
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.waitForCloseConfirmation:Z
18: aload 0
new com.mongodb.internal.connection.tlschannel.impl.BufferHolder
dup
19: ldc "inPlain"
20: aload 7
21: sipush 4096
22: sipush 17408
23: iconst_1
24: iload 9
invokespecial com.mongodb.internal.connection.tlschannel.impl.BufferHolder.<init>:(Ljava/lang/String;Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;IIZZ)V
25: putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
26: aload 0
new com.mongodb.internal.connection.tlschannel.impl.BufferHolder
dup
27: ldc "outEncrypted"
28: aload 8
29: sipush 4096
30: sipush 17408
31: iconst_0
32: iload 9
invokespecial com.mongodb.internal.connection.tlschannel.impl.BufferHolder.<init>:(Ljava/lang/String;Lcom/mongodb/internal/connection/tlschannel/BufferAllocator;IIZZ)V
33: putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
34: return
end local 10 end local 9 end local 8 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 35 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
0 35 1 readChannel Ljava/nio/channels/ReadableByteChannel;
0 35 2 writeChannel Ljava/nio/channels/WritableByteChannel;
0 35 3 engine Ljavax/net/ssl/SSLEngine;
0 35 4 inEncrypted Ljava/util/Optional<Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;>;
0 35 5 initSessionCallback Ljava/util/function/Consumer<Ljavax/net/ssl/SSLSession;>;
0 35 6 runTasks Z
0 35 7 plainBufAllocator Lcom/mongodb/internal/connection/tlschannel/TrackingAllocator;
0 35 8 encryptedBufAllocator Lcom/mongodb/internal/connection/tlschannel/TrackingAllocator;
0 35 9 releaseBuffers Z
0 35 10 waitForCloseConfirmation Z
Signature: (Ljava/nio/channels/ReadableByteChannel;Ljava/nio/channels/WritableByteChannel;Ljavax/net/ssl/SSLEngine;Ljava/util/Optional<Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;>;Ljava/util/function/Consumer<Ljavax/net/ssl/SSLSession;>;ZLcom/mongodb/internal/connection/tlschannel/TrackingAllocator;Lcom/mongodb/internal/connection/tlschannel/TrackingAllocator;ZZ)V
MethodParameters:
Name Flags
readChannel final
writeChannel final
engine final
inEncrypted final
initSessionCallback final
runTasks final
plainBufAllocator final
encryptedBufAllocator final
releaseBuffers final
waitForCloseConfirmation final
public java.util.function.Consumer<javax.net.ssl.SSLSession> getSessionInitCallback();
descriptor: ()Ljava/util/function/Consumer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.initSessionCallback:Ljava/util/function/Consumer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
Signature: ()Ljava/util/function/Consumer<Ljavax/net/ssl/SSLSession;>;
public com.mongodb.internal.connection.tlschannel.TrackingAllocator getPlainBufferAllocator();
descriptor: ()Lcom/mongodb/internal/connection/tlschannel/TrackingAllocator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.plainBufAllocator:Lcom/mongodb/internal/connection/tlschannel/TrackingAllocator;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
public com.mongodb.internal.connection.tlschannel.TrackingAllocator getEncryptedBufferAllocator();
descriptor: ()Lcom/mongodb/internal/connection/tlschannel/TrackingAllocator;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.encryptedBufAllocator:Lcom/mongodb/internal/connection/tlschannel/TrackingAllocator;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
public long read(com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet);
descriptor: (Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.checkReadBuffer:(Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)V
1: aload 1
invokevirtual com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.hasRemaining:()Z
ifne 3
2: lconst_0
lreturn
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.handshake:()V
4: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
5: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.invalid:Z
ifne 6
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.shutdownSent:Z
ifeq 7
6: StackMap locals:
StackMap stack:
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 2
start local 2 8: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.nullOrEmpty:()Z
ifeq 9
iconst_0
goto 10
StackMap locals: javax.net.ssl.SSLEngineResult$HandshakeStatus
StackMap stack:
9: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
getfield com.mongodb.internal.connection.tlschannel.impl.BufferHolder.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
StackMap locals:
StackMap stack: int
10: istore 3
start local 3 11: StackMap locals: int
StackMap stack:
iload 3
ifle 19
12: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.nullOrEmpty:()Z
ifeq 16
13: iload 3
i2l
lstore 6
14: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
15: lload 6
lreturn
16: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.transferPendingPlain:(Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)I
i2l
lstore 6
17: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
18: lload 6
lreturn
19: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.shutdownReceived:Z
ifeq 22
20: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
21: ldc -1
lreturn
22: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.nullOrEmpty:()Z
invokestatic com.mongodb.internal.connection.tlschannel.util.Util.assertTrue:(Z)V
23: invokestatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:()[I
aload 2
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
iaload
tableswitch { // 1 - 5
1: 27
2: 27
3: 36
4: 24
5: 24
default: 39
}
24: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
aload 2
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.handshake:(Ljava/util/Optional;Ljava/util/Optional;)I
istore 3
25: getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NOT_HANDSHAKING:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 2
26: goto 11
27: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NOT_HANDSHAKING:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
28: iconst_0
29: invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readAndUnwrap:(Ljava/util/Optional;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;Z)Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl$UnwrapResult;
astore 4
start local 4 30: aload 4
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$UnwrapResult.wasClosed:Z
ifeq 33
31: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
32: ldc -1
lreturn
33: StackMap locals: com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$UnwrapResult
StackMap stack:
aload 4
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$UnwrapResult.bytesProduced:I
istore 3
34: aload 4
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$UnwrapResult.lastHandshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 2
35: goto 11
end local 4 36: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.handleTask:()V
37: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 2
38: goto 11
39: StackMap locals:
StackMap stack:
new javax.net.ssl.SSLHandshakeException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported handshake status: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial javax.net.ssl.SSLHandshakeException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 40: StackMap locals: com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
StackMap stack: com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException
pop
41: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
42: ldc -1
lreturn
43: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
44: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
45: aload 5
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
0 46 1 dest Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;
8 40 2 handshakeStatus Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
11 40 3 bytesToReturn I
30 36 4 res Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl$UnwrapResult;
Exception table:
from to target type
5 14 40 Class com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException
16 17 40 Class com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException
19 20 40 Class com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException
22 31 40 Class com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException
33 40 40 Class com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException
5 14 43 any
16 17 43 any
19 20 43 any
22 31 43 any
33 41 43 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dest final
private void handleTask();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.runTasks:Z
ifeq 3
1: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getDelegatedTask:()Ljava/lang/Runnable;
invokeinterface java.lang.Runnable.run:()V
2: goto 4
3: StackMap locals:
StackMap stack:
new com.mongodb.internal.connection.tlschannel.NeedsTaskException
dup
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getDelegatedTask:()Ljava/lang/Runnable;
invokespecial com.mongodb.internal.connection.tlschannel.NeedsTaskException.<init>:(Ljava/lang/Runnable;)V
athrow
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
Exceptions:
throws com.mongodb.internal.connection.tlschannel.NeedsTaskException
private int transferPendingPlain(com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet);
descriptor: (Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
getfield com.mongodb.internal.connection.tlschannel.impl.BufferHolder.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.Buffer.flip:()Ljava/nio/Buffer;
pop
1: aload 1
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
getfield com.mongodb.internal.connection.tlschannel.impl.BufferHolder.buffer:Ljava/nio/ByteBuffer;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.putRemaining:(Ljava/nio/ByteBuffer;)I
istore 2
start local 2 2: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
getfield com.mongodb.internal.connection.tlschannel.impl.BufferHolder.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
pop
3: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.release:()Z
istore 3
start local 3 4: iload 3
ifne 6
5: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.zeroRemaining:()V
6: StackMap locals: int int
StackMap stack:
iload 2
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
0 7 1 dstBuffers Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;
2 7 2 bytes I
4 7 3 disposed Z
MethodParameters:
Name Flags
dstBuffers final
private com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$UnwrapResult unwrapLoop(java.util.Optional<com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet>, javax.net.ssl.SSLEngineResult$HandshakeStatus, boolean);
descriptor: (Ljava/util/Optional;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;Z)Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl$UnwrapResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
new com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$2
dup
aload 0
invokespecial com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$2.<init>:(Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;)V
invokevirtual java.util.Optional.orElseGet:(Ljava/util/function/Supplier;)Ljava/lang/Object;
checkcast com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
astore 4
start local 4 1: StackMap locals: com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.nullOrEmpty:()Z
invokestatic com.mongodb.internal.connection.tlschannel.util.Util.assertTrue:(Z)V
2: aload 0
aload 4
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.callEngineUnwrap:(Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)Ljavax/net/ssl/SSLEngineResult;
astore 5
start local 5 3: aload 5
invokevirtual javax.net.ssl.SSLEngineResult.bytesProduced:()I
ifgt 6
aload 5
invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
if_acmpeq 6
4: iload 3
ifne 5
aload 5
invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
if_acmpeq 6
5: StackMap locals: javax.net.ssl.SSLEngineResult
StackMap stack:
aload 5
invokevirtual javax.net.ssl.SSLEngineResult.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
aload 2
if_acmpeq 10
6: StackMap locals:
StackMap stack:
aload 5
invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
if_acmpne 7
iconst_1
goto 8
StackMap locals:
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 6
start local 6 9: new com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$UnwrapResult
dup
aload 5
invokevirtual javax.net.ssl.SSLEngineResult.bytesProduced:()I
aload 5
invokevirtual javax.net.ssl.SSLEngineResult.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
iload 6
invokespecial com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$UnwrapResult.<init>:(ILjavax/net/ssl/SSLEngineResult$HandshakeStatus;Z)V
areturn
end local 6 10: StackMap locals:
StackMap stack:
aload 5
invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
if_acmpne 1
11: aload 1
invokevirtual java.util.Optional.isPresent:()Z
ifeq 15
aload 4
aload 1
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
if_acmpne 15
12: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.prepare:()V
13: aload 0
aload 1
invokevirtual java.util.Optional.get:()Ljava/lang/Object;
checkcast com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
invokevirtual com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.remaining:()J
l2i
iconst_2
imul
sipush 17408
invokestatic java.lang.Math.min:(II)I
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.ensureInPlainCapacity:(I)V
14: goto 16
15: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.enlarge:()V
16: StackMap locals:
StackMap stack:
new com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
dup
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
getfield com.mongodb.internal.connection.tlschannel.impl.BufferHolder.buffer:Ljava/nio/ByteBuffer;
invokespecial com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.<init>:(Ljava/nio/ByteBuffer;)V
astore 4
end local 5 17: goto 1
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
0 18 1 dest Ljava/util/Optional<Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;>;
0 18 2 statusCondition Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
0 18 3 closing Z
1 18 4 effDest Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;
3 17 5 result Ljavax/net/ssl/SSLEngineResult;
9 10 6 wasClosed Z
Exceptions:
throws javax.net.ssl.SSLException
Signature: (Ljava/util/Optional<Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;>;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;Z)Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl$UnwrapResult;
MethodParameters:
Name Flags
dest final
statusCondition final
closing final
private javax.net.ssl.SSLEngineResult callEngineUnwrap(com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet);
descriptor: (Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)Ljavax/net/ssl/SSLEngineResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
getfield com.mongodb.internal.connection.tlschannel.impl.BufferHolder.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.Buffer.flip:()Ljava/nio/Buffer;
pop
1: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.engine:Ljavax/net/ssl/SSLEngine;
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
getfield com.mongodb.internal.connection.tlschannel.impl.BufferHolder.buffer:Ljava/nio/ByteBuffer;
aload 1
getfield com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.array:[Ljava/nio/ByteBuffer;
aload 1
getfield com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.offset:I
aload 1
getfield com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.length:I
invokevirtual javax.net.ssl.SSLEngine.unwrap:(Ljava/nio/ByteBuffer;[Ljava/nio/ByteBuffer;II)Ljavax/net/ssl/SSLEngineResult;
astore 2
start local 2 2: getstatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
invokeinterface com.mongodb.diagnostics.logging.Logger.isTraceEnabled:()Z
ifeq 6
3: getstatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
ldc "engine.unwrap() result [%s]. Engine status: %s; inEncrypted %s; inPlain: %s"
iconst_4
anewarray java.lang.Object
dup
iconst_0
4: aload 2
invokestatic com.mongodb.internal.connection.tlschannel.util.Util.resultToString:(Ljavax/net/ssl/SSLEngineResult;)Ljava/lang/String;
aastore
dup
iconst_1
aload 2
invokevirtual javax.net.ssl.SSLEngineResult.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
aastore
dup
iconst_2
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
aastore
dup
iconst_3
aload 1
aastore
5: 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
6: StackMap locals: javax.net.ssl.SSLEngineResult
StackMap stack:
aload 2
astore 4
7: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
getfield com.mongodb.internal.connection.tlschannel.impl.BufferHolder.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
pop
8: aload 4
areturn
end local 2 9: StackMap locals: com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
StackMap stack: javax.net.ssl.SSLException
astore 2
start local 2 10: aload 0
iconst_1
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.invalid:Z
11: aload 2
athrow
end local 2 12: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
13: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
getfield com.mongodb.internal.connection.tlschannel.impl.BufferHolder.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
pop
14: aload 3
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
0 15 1 dest Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;
2 9 2 result Ljavax/net/ssl/SSLEngineResult;
10 12 2 e Ljavax/net/ssl/SSLException;
Exception table:
from to target type
1 7 9 Class javax.net.ssl.SSLException
1 7 12 any
9 12 12 any
Exceptions:
throws javax.net.ssl.SSLException
MethodParameters:
Name Flags
dest final
private int readFromChannel();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readChannel:Ljava/nio/channels/ReadableByteChannel;
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
getfield com.mongodb.internal.connection.tlschannel.impl.BufferHolder.buffer:Ljava/nio/ByteBuffer;
invokestatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readFromChannel:(Ljava/nio/channels/ReadableByteChannel;Ljava/nio/ByteBuffer;)I
1: ireturn
2: StackMap locals:
StackMap stack: com.mongodb.internal.connection.tlschannel.WouldBlockException
astore 1
start local 1 3: aload 1
athrow
end local 1 4: StackMap locals:
StackMap stack: java.io.IOException
astore 1
start local 1 5: aload 0
iconst_1
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.invalid:Z
6: aload 1
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
3 4 1 e Lcom/mongodb/internal/connection/tlschannel/WouldBlockException;
5 7 1 e Ljava/io/IOException;
Exception table:
from to target type
0 1 2 Class com.mongodb.internal.connection.tlschannel.WouldBlockException
0 1 4 Class java.io.IOException
Exceptions:
throws java.io.IOException, com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException
public static int readFromChannel(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer);
descriptor: (Ljava/nio/channels/ReadableByteChannel;Ljava/nio/ByteBuffer;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
invokestatic com.mongodb.internal.connection.tlschannel.util.Util.assertTrue:(Z)V
1: getstatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
invokeinterface com.mongodb.diagnostics.logging.Logger.isTraceEnabled:()Z
ifeq 3
2: getstatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
ldc "Reading from channel"
invokeinterface com.mongodb.diagnostics.logging.Logger.trace:(Ljava/lang/String;)V
3: StackMap locals:
StackMap stack:
aload 0
aload 1
invokeinterface java.nio.channels.ReadableByteChannel.read:(Ljava/nio/ByteBuffer;)I
istore 2
start local 2 4: getstatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
invokeinterface com.mongodb.diagnostics.logging.Logger.isTraceEnabled:()Z
ifeq 6
5: getstatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
ldc "Read from channel; response: %s, buffer: %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
aload 1
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
6: StackMap locals: int
StackMap stack:
iload 2
iconst_m1
if_icmpne 8
7: new com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException
dup
invokespecial com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
iload 2
ifne 10
9: new com.mongodb.internal.connection.tlschannel.NeedsReadException
dup
invokespecial com.mongodb.internal.connection.tlschannel.NeedsReadException.<init>:()V
athrow
10: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 readChannel Ljava/nio/channels/ReadableByteChannel;
0 11 1 buffer Ljava/nio/ByteBuffer;
4 11 2 c I
Exceptions:
throws java.io.IOException, com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException
MethodParameters:
Name Flags
readChannel final
buffer final
public long write(com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet);
descriptor: (Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.handshake:()V
1: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
2: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.invalid:Z
ifne 3
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.shutdownSent:Z
ifeq 4
3: StackMap locals:
StackMap stack:
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.wrapAndWrite:(Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)J
lstore 3
5: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
6: lload 3
lreturn
7: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
8: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
9: aload 2
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
0 10 1 source Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;
Exception table:
from to target type
2 5 7 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source final
private long wrapAndWrite(com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet);
descriptor: (Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=10, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.remaining:()J
lstore 2
start local 2 1: lconst_0
lstore 4
start local 4 2: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.prepare:()V
3: StackMap locals: long long
StackMap stack:
aload 0
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeToChannel:()V
4: lload 4
lload 2
lcmp
ifne 8
5: lload 2
lstore 8
6: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.release:()Z
pop
7: lload 8
lreturn
8: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.wrapLoop:(Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl$WrapResult;
astore 6
start local 6 9: lload 4
aload 6
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$WrapResult.bytesConsumed:I
i2l
ladd
lstore 4
end local 6 10: goto 3
11: StackMap locals:
StackMap stack: java.lang.Throwable
astore 7
12: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.release:()Z
pop
13: aload 7
athrow
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
0 14 1 source Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;
1 14 2 bytesToConsume J
2 14 4 bytesConsumed J
9 10 6 res Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl$WrapResult;
Exception table:
from to target type
3 6 11 any
8 11 11 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source final
private com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$WrapResult wrapLoop(com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet);
descriptor: (Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl$WrapResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.callEngineWrap:(Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)Ljavax/net/ssl/SSLEngineResult;
astore 2
start local 2 1: invokestatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:()[I
aload 2
invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
iaload
tableswitch { // 1 - 4
1: 8
2: 3
3: 2
4: 2
default: 9
}
2: StackMap locals: javax.net.ssl.SSLEngineResult
StackMap stack:
new com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$WrapResult
dup
aload 2
invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
aload 2
invokevirtual javax.net.ssl.SSLEngineResult.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokespecial com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$WrapResult.<init>:(ILjavax/net/ssl/SSLEngineResult$HandshakeStatus;)V
areturn
3: StackMap locals:
StackMap stack:
aload 2
invokevirtual javax.net.ssl.SSLEngineResult.bytesConsumed:()I
ifne 4
iconst_1
goto 5
StackMap locals:
StackMap stack:
4: iconst_0
StackMap locals:
StackMap stack: int
5: invokestatic com.mongodb.internal.connection.tlschannel.util.Util.assertTrue:(Z)V
6: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.enlarge:()V
7: goto 0
8: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Unexpected status: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual javax.net.ssl.SSLEngineResult.getStatus:()Ljavax/net/ssl/SSLEngineResult$Status;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
0 10 1 source Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;
1 10 2 result Ljavax/net/ssl/SSLEngineResult;
Exceptions:
throws javax.net.ssl.SSLException
MethodParameters:
Name Flags
source final
private javax.net.ssl.SSLEngineResult callEngineWrap(com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet);
descriptor: (Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)Ljavax/net/ssl/SSLEngineResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.engine:Ljavax/net/ssl/SSLEngine;
aload 1
getfield com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.array:[Ljava/nio/ByteBuffer;
aload 1
getfield com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.offset:I
aload 1
getfield com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.length:I
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
getfield com.mongodb.internal.connection.tlschannel.impl.BufferHolder.buffer:Ljava/nio/ByteBuffer;
invokevirtual javax.net.ssl.SSLEngine.wrap:([Ljava/nio/ByteBuffer;IILjava/nio/ByteBuffer;)Ljavax/net/ssl/SSLEngineResult;
astore 2
start local 2 1: getstatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
invokeinterface com.mongodb.diagnostics.logging.Logger.isTraceEnabled:()Z
ifeq 5
2: getstatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
ldc "engine.wrap() result: [%s]; engine status: %s; srcBuffer: %s, outEncrypted: %s"
iconst_4
anewarray java.lang.Object
dup
iconst_0
3: aload 2
invokestatic com.mongodb.internal.connection.tlschannel.util.Util.resultToString:(Ljavax/net/ssl/SSLEngineResult;)Ljava/lang/String;
aastore
dup
iconst_1
aload 2
invokevirtual javax.net.ssl.SSLEngineResult.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
aastore
dup
iconst_2
aload 1
aastore
dup
iconst_3
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
aastore
4: 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
5: StackMap locals: javax.net.ssl.SSLEngineResult
StackMap stack:
aload 2
6: areturn
end local 2 7: StackMap locals: com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
StackMap stack: javax.net.ssl.SSLException
astore 2
start local 2 8: aload 0
iconst_1
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.invalid:Z
9: aload 2
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
0 10 1 source Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;
1 7 2 result Ljavax/net/ssl/SSLEngineResult;
8 10 2 e Ljavax/net/ssl/SSLException;
Exception table:
from to target type
0 6 7 Class javax.net.ssl.SSLException
Exceptions:
throws javax.net.ssl.SSLException
MethodParameters:
Name Flags
source final
private void ensureInPlainCapacity(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
getfield com.mongodb.internal.connection.tlschannel.impl.BufferHolder.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
iload 1
if_icmpge 4
1: getstatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
invokeinterface com.mongodb.diagnostics.logging.Logger.isTraceEnabled:()Z
ifeq 3
2: getstatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
ldc "inPlain buffer too small, increasing from %s to %s"
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
getfield com.mongodb.internal.connection.tlschannel.impl.BufferHolder.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
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
3: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
iload 1
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.resize:(I)V
4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
0 5 1 newCapacity I
MethodParameters:
Name Flags
newCapacity final
private void writeToChannel();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
getfield com.mongodb.internal.connection.tlschannel.impl.BufferHolder.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.position:()I
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
getfield com.mongodb.internal.connection.tlschannel.impl.BufferHolder.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.Buffer.flip:()Ljava/nio/Buffer;
pop
3: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeChannel:Ljava/nio/channels/WritableByteChannel;
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
getfield com.mongodb.internal.connection.tlschannel.impl.BufferHolder.buffer:Ljava/nio/ByteBuffer;
invokestatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeToChannel:(Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;)V
4: goto 13
StackMap locals:
StackMap stack: com.mongodb.internal.connection.tlschannel.WouldBlockException
5: astore 1
start local 1 6: aload 1
athrow
end local 1 7: StackMap locals:
StackMap stack: java.io.IOException
astore 1
start local 1 8: aload 0
iconst_1
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.invalid:Z
9: aload 1
athrow
end local 1 10: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
11: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
getfield com.mongodb.internal.connection.tlschannel.impl.BufferHolder.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
pop
12: aload 2
athrow
13: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
getfield com.mongodb.internal.connection.tlschannel.impl.BufferHolder.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.compact:()Ljava/nio/ByteBuffer;
pop
14: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
6 7 1 e Lcom/mongodb/internal/connection/tlschannel/WouldBlockException;
8 10 1 e Ljava/io/IOException;
Exception table:
from to target type
3 4 5 Class com.mongodb.internal.connection.tlschannel.WouldBlockException
3 4 7 Class java.io.IOException
3 10 10 any
Exceptions:
throws java.io.IOException
private static void writeToChannel(java.nio.channels.WritableByteChannel, java.nio.ByteBuffer);
descriptor: (Ljava/nio/channels/WritableByteChannel;Ljava/nio/ByteBuffer;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: goto 5
1: StackMap locals:
StackMap stack:
getstatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
ldc "Writing to channel: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
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
2: aload 0
aload 1
invokeinterface java.nio.channels.WritableByteChannel.write:(Ljava/nio/ByteBuffer;)I
istore 2
start local 2 3: iload 2
ifne 5
4: new com.mongodb.internal.connection.tlschannel.NeedsWriteException
dup
invokespecial com.mongodb.internal.connection.tlschannel.NeedsWriteException.<init>:()V
athrow
end local 2 5: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 1
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 channel Ljava/nio/channels/WritableByteChannel;
0 7 1 src Ljava/nio/ByteBuffer;
3 5 2 c I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
channel final
src final
public void renegotiate();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.doHandshake:(Z)V
1: goto 4
StackMap locals:
StackMap stack: com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException
2: pop
3: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
Exception table:
from to target type
0 1 2 Class com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException
Exceptions:
throws java.io.IOException
public void handshake();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.doHandshake:(Z)V
1: goto 4
StackMap locals:
StackMap stack: com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException
2: pop
3: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
Exception table:
from to target type
0 1 2 Class com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException
Exceptions:
throws java.io.IOException
private void doHandshake(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: iload 1
ifne 2
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.negotiated:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.invalid:Z
ifne 3
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.shutdownSent:Z
ifeq 4
3: StackMap locals:
StackMap stack:
new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.initLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
5: iload 1
ifne 6
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.negotiated:Z
ifne 19
6: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.beginHandshake:()V
7: getstatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
ldc "Called engine.beginHandshake()"
invokeinterface com.mongodb.diagnostics.logging.Logger.trace:(Ljava/lang/String;)V
8: aload 0
invokestatic java.util.Optional.empty:()Ljava/util/Optional;
invokestatic java.util.Optional.empty:()Ljava/util/Optional;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.handshake:(Ljava/util/Optional;Ljava/util/Optional;)I
pop
9: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.initSessionCallback:Ljava/util/function/Consumer;
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getSession:()Ljavax/net/ssl/SSLSession;
invokeinterface java.util.function.Consumer.accept:(Ljava/lang/Object;)V
10: goto 14
StackMap locals:
StackMap stack: java.lang.Exception
11: astore 2
start local 2 12: getstatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
ldc "client code threw exception in session initialization callback"
aload 2
invokeinterface com.mongodb.diagnostics.logging.Logger.trace:(Ljava/lang/String;Ljava/lang/Throwable;)V
13: new com.mongodb.internal.connection.tlschannel.util.TlsChannelCallbackException
dup
ldc "session initialization callback failed"
aload 2
invokespecial com.mongodb.internal.connection.tlschannel.util.TlsChannelCallbackException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 2 14: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.negotiated:Z
15: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
16: astore 3
17: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.initLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
18: aload 3
athrow
19: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.initLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
20: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
0 21 1 force Z
12 14 2 e Ljava/lang/Exception;
Exception table:
from to target type
9 10 11 Class java.lang.Exception
5 16 16 any
Exceptions:
throws java.io.IOException, com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException
MethodParameters:
Name Flags
force final
private int handshake(java.util.Optional<com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet>, java.util.Optional<javax.net.ssl.SSLEngineResult$HandshakeStatus>);
descriptor: (Ljava/util/Optional;Ljava/util/Optional;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
1: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
2: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.nullOrEmpty:()Z
invokestatic com.mongodb.internal.connection.tlschannel.util.Util.assertTrue:(Z)V
3: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.prepare:()V
4: aload 0
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeToChannel:()V
5: aload 0
aload 1
aload 2
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.handshakeLoop:(Ljava/util/Optional;Ljava/util/Optional;)I
istore 4
6: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.release:()Z
pop
7: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
8: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
9: iload 4
ireturn
10: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
11: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.release:()Z
pop
12: aload 3
athrow
13: StackMap locals:
StackMap stack: java.lang.Throwable
astore 5
14: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
15: aload 5
athrow
16: StackMap locals:
StackMap stack: java.lang.Throwable
astore 6
17: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
18: aload 6
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
0 19 1 dest Ljava/util/Optional<Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;>;
0 19 2 handshakeStatus Ljava/util/Optional<Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;>;
Exception table:
from to target type
4 6 10 any
2 7 13 any
10 13 13 any
1 8 16 any
10 16 16 any
Exceptions:
throws java.io.IOException, com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException
Signature: (Ljava/util/Optional<Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;>;Ljava/util/Optional<Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;>;)I
MethodParameters:
Name Flags
dest final
handshakeStatus final
private int handshakeLoop(java.util.Optional<com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet>, java.util.Optional<javax.net.ssl.SSLEngineResult$HandshakeStatus>);
descriptor: (Ljava/util/Optional;Ljava/util/Optional;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.nullOrEmpty:()Z
invokestatic com.mongodb.internal.connection.tlschannel.util.Util.assertTrue:(Z)V
1: aload 2
new com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$3
dup
aload 0
invokespecial com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$3.<init>:(Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;)V
invokevirtual java.util.Optional.orElseGet:(Ljava/util/function/Supplier;)Ljava/lang/Object;
checkcast javax.net.ssl.SSLEngineResult$HandshakeStatus
astore 3
start local 3 2: StackMap locals: javax.net.ssl.SSLEngineResult$HandshakeStatus
StackMap stack:
invokestatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:()[I
aload 3
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
iaload
tableswitch { // 1 - 5
1: 12
2: 16
3: 13
4: 3
5: 8
default: 17
}
3: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.nullOrEmpty:()Z
invokestatic com.mongodb.internal.connection.tlschannel.util.Util.assertTrue:(Z)V
4: aload 0
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.dummyOut:Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.wrapLoop:(Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl$WrapResult;
astore 4
start local 4 5: aload 4
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$WrapResult.lastHandshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 3
6: aload 0
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeToChannel:()V
7: goto 2
end local 4 8: StackMap locals:
StackMap stack:
aload 0
aload 1
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
iconst_0
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readAndUnwrap:(Ljava/util/Optional;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;Z)Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl$UnwrapResult;
astore 5
start local 5 9: aload 5
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$UnwrapResult.lastHandshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 3
10: aload 5
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$UnwrapResult.bytesProduced:I
ifle 2
11: aload 5
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$UnwrapResult.bytesProduced:I
ireturn
end local 5 12: StackMap locals:
StackMap stack:
iconst_0
ireturn
13: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.handleTask:()V
14: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.getHandshakeStatus:()Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
astore 3
15: goto 2
16: StackMap locals:
StackMap stack:
iconst_0
ireturn
17: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Unexpected status: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
0 18 1 dest Ljava/util/Optional<Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;>;
0 18 2 handshakeStatus Ljava/util/Optional<Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;>;
2 18 3 status Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
5 8 4 wrapResult Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl$WrapResult;
9 12 5 res Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl$UnwrapResult;
Exceptions:
throws java.io.IOException, com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException
Signature: (Ljava/util/Optional<Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;>;Ljava/util/Optional<Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;>;)I
MethodParameters:
Name Flags
dest final
handshakeStatus final
private com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$UnwrapResult readAndUnwrap(java.util.Optional<com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet>, javax.net.ssl.SSLEngineResult$HandshakeStatus, boolean);
descriptor: (Ljava/util/Optional;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;Z)Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl$UnwrapResult;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.prepare:()V
1: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.nullOrEmpty:()Z
invokestatic com.mongodb.internal.connection.tlschannel.util.Util.assertTrue:(Z)V
2: aload 0
aload 1
aload 2
iload 3
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.unwrapLoop:(Ljava/util/Optional;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;Z)Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl$UnwrapResult;
astore 4
start local 4 3: aload 4
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$UnwrapResult.bytesProduced:I
ifgt 4
aload 4
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$UnwrapResult.lastHandshakeStatus:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
aload 2
if_acmpne 4
iload 3
ifne 9
aload 4
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$UnwrapResult.wasClosed:Z
ifeq 9
4: StackMap locals: com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$UnwrapResult
StackMap stack:
aload 4
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$UnwrapResult.wasClosed:Z
ifeq 6
5: aload 0
iconst_1
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.shutdownReceived:Z
6: StackMap locals:
StackMap stack:
aload 4
astore 6
7: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.release:()Z
pop
8: aload 6
areturn
9: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
getfield com.mongodb.internal.connection.tlschannel.impl.BufferHolder.buffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 11
10: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.enlarge:()V
11: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readFromChannel:()I
pop
end local 4 12: goto 1
13: StackMap locals: com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl java.util.Optional javax.net.ssl.SSLEngineResult$HandshakeStatus int
StackMap stack: java.lang.Throwable
astore 5
14: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.release:()Z
pop
15: aload 5
athrow
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/tlschannel/impl/TlsChannelImpl;
0 16 1 dest Ljava/util/Optional<Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;>;
0 16 2 statusCondition Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
0 16 3 closing Z
3 12 4 res Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl$UnwrapResult;
Exception table:
from to target type
1 7 13 any
9 13 13 any
Exceptions:
throws java.io.IOException, com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException
Signature: (Ljava/util/Optional<Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;>;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;Z)Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl$UnwrapResult;
MethodParameters:
Name Flags
dest final
statusCondition final
closing final
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.tryShutdown:()V
1: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeChannel:Ljava/nio/channels/WritableByteChannel;
invokeinterface java.nio.channels.WritableByteChannel.close:()V
2: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readChannel:Ljava/nio/channels/ReadableByteChannel;
invokeinterface java.nio.channels.ReadableByteChannel.close:()V
3: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
4: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
5: aload 0
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.freeBuffers:()V
6: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 1
8: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
9: aload 1
athrow
10: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
11: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 2
13: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
14: aload 2
athrow
15: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
16: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
Exception table:
from to target type
5 7 7 any
4 12 12 any
Exceptions:
throws java.io.IOException
private void tryShutdown();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.tryLock:()Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.tryLock:()Z
ifne 5
3: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
4: return
5: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.shutdownSent:Z
ifne 16
6: aload 0
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.shutdown:()Z
istore 1
start local 1 7: iload 1
ifne 16
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.waitForCloseConfirmation:Z
ifeq 16
8: aload 0
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.shutdown:()Z
pop
end local 1 9: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
10: astore 1
start local 1 11: getstatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
ldc "error doing TLS shutdown on close(), continuing: %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual java.lang.Throwable.getMessage:()Ljava/lang/String;
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
end local 1 12: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
13: astore 2
14: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
15: aload 2
athrow
16: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
17: goto 21
StackMap locals:
StackMap stack: java.lang.Throwable
18: astore 3
19: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
20: aload 3
athrow
21: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
22: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
7 9 1 closed Z
11 12 1 e Ljava/lang/Throwable;
Exception table:
from to target type
6 9 10 Class java.lang.Throwable
5 13 13 any
2 3 18 any
5 18 18 any
public boolean shutdown();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
1: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
2: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.invalid:Z
ifeq 4
3: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.shutdownSent:Z
ifne 22
5: aload 0
iconst_1
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.shutdownSent:Z
6: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.prepare:()V
7: aload 0
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeToChannel:()V
8: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.engine:Ljavax/net/ssl/SSLEngine;
invokevirtual javax.net.ssl.SSLEngine.closeOutbound:()V
9: aload 0
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.dummyOut:Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.wrapLoop:(Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl$WrapResult;
pop
10: aload 0
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeToChannel:()V
11: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
12: astore 1
13: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.release:()Z
pop
14: aload 1
athrow
15: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.release:()Z
pop
16: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.shutdownReceived:Z
ifeq 18
17: aload 0
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.freeBuffers:()V
18: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.shutdownReceived:Z
istore 3
19: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
20: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
21: iload 3
ireturn
22: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.shutdownReceived:Z
ifne 28
23: aload 0
invokestatic java.util.Optional.empty:()Ljava/util/Optional;
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
iconst_1
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readAndUnwrap:(Ljava/util/Optional;Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;Z)Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl$UnwrapResult;
pop
24: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.shutdownReceived:Z
invokestatic com.mongodb.internal.connection.tlschannel.util.Util.assertTrue:(Z)V
25: goto 28
StackMap locals:
StackMap stack: com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException
26: pop
27: new java.nio.channels.ClosedChannelException
dup
invokespecial java.nio.channels.ClosedChannelException.<init>:()V
athrow
28: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.freeBuffers:()V
29: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
30: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
31: iconst_1
ireturn
32: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
33: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
34: aload 2
athrow
35: StackMap locals:
StackMap stack: java.lang.Throwable
astore 4
36: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
37: aload 4
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
Exception table:
from to target type
7 12 12 any
23 25 26 Class com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException
2 19 32 any
22 29 32 any
1 20 35 any
22 30 35 any
32 35 35 any
Exceptions:
throws java.io.IOException
private void freeBuffers();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
ifnull 3
1: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.dispose:()Z
pop
2: aload 0
aconst_null
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
3: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
ifnull 6
4: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.dispose:()Z
pop
5: aload 0
aconst_null
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.inPlain:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
6: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
ifnull 9
7: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
invokevirtual com.mongodb.internal.connection.tlschannel.impl.BufferHolder.dispose:()Z
pop
8: aload 0
aconst_null
putfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.outEncrypted:Lcom/mongodb/internal/connection/tlschannel/impl/BufferHolder;
9: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
public boolean isOpen();
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.tlschannel.impl.TlsChannelImpl.invalid:Z
ifne 1
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeChannel:Ljava/nio/channels/WritableByteChannel;
invokeinterface java.nio.channels.WritableByteChannel.isOpen:()Z
ifeq 1
aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readChannel:Ljava/nio/channels/ReadableByteChannel;
invokeinterface java.nio.channels.ReadableByteChannel.isOpen:()Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
public static void checkReadBuffer(com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet);
descriptor: (Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.isReadOnly:()Z
ifeq 2
1: new java.lang.IllegalArgumentException
dup
invokespecial java.lang.IllegalArgumentException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 dest Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;
MethodParameters:
Name Flags
dest final
public javax.net.ssl.SSLEngine engine();
descriptor: ()Ljavax/net/ssl/SSLEngine;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.engine:Ljavax/net/ssl/SSLEngine;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
public boolean getRunTasks();
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.tlschannel.impl.TlsChannelImpl.runTasks:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
public int read(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
dup
aload 1
invokespecial com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.<init>:(Ljava/nio/ByteBuffer;)V
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.read:(Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)J
l2i
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
0 1 1 dst Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
dst final
public int write(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
new com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet
dup
aload 1
invokespecial com.mongodb.internal.connection.tlschannel.impl.ByteBufferSet.<init>:(Ljava/nio/ByteBuffer;)V
invokevirtual com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.write:(Lcom/mongodb/internal/connection/tlschannel/impl/ByteBufferSet;)J
l2i
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
0 1 1 src Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src final
public boolean shutdownReceived();
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.tlschannel.impl.TlsChannelImpl.shutdownReceived:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
public boolean shutdownSent();
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.tlschannel.impl.TlsChannelImpl.shutdownSent:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
public java.nio.channels.ReadableByteChannel plainReadableChannel();
descriptor: ()Ljava/nio/channels/ReadableByteChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.readChannel:Ljava/nio/channels/ReadableByteChannel;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
public java.nio.channels.WritableByteChannel plainWritableChannel();
descriptor: ()Ljava/nio/channels/WritableByteChannel;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.writeChannel:Ljava/nio/channels/WritableByteChannel;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/tlschannel/impl/TlsChannelImpl;
static int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic javax.net.ssl.SSLEngineResult$HandshakeStatus.values:()[Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
arraylength
newarray 10
astore 0
2: aload 0
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.FINISHED:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
iconst_2
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_TASK:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
iconst_3
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_UNWRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
iconst_5
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NEED_WRAP:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
iconst_4
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
getstatic javax.net.ssl.SSLEngineResult$HandshakeStatus.NOT_HANDSHAKING:Ljavax/net/ssl/SSLEngineResult$HandshakeStatus;
invokevirtual javax.net.ssl.SSLEngineResult$HandshakeStatus.ordinal:()I
iconst_1
iastore
15: goto 17
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
16: pop
StackMap locals:
StackMap stack:
17: aload 0
dup
putstatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$HandshakeStatus:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
14 15 16 Class java.lang.NoSuchFieldError
static int[] $SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic javax.net.ssl.SSLEngineResult$Status.values:()[Ljavax/net/ssl/SSLEngineResult$Status;
arraylength
newarray 10
astore 0
2: aload 0
getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_OVERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
iconst_2
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic javax.net.ssl.SSLEngineResult$Status.BUFFER_UNDERFLOW:Ljavax/net/ssl/SSLEngineResult$Status;
invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
iconst_1
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic javax.net.ssl.SSLEngineResult$Status.CLOSED:Ljavax/net/ssl/SSLEngineResult$Status;
invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
iconst_4
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic javax.net.ssl.SSLEngineResult$Status.OK:Ljavax/net/ssl/SSLEngineResult$Status;
invokevirtual javax.net.ssl.SSLEngineResult$Status.ordinal:()I
iconst_3
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
dup
putstatic com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl.$SWITCH_TABLE$javax$net$ssl$SSLEngineResult$Status:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
}
SourceFile: "TlsChannelImpl.java"
NestMembers:
com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$1 com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$2 com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$3 com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$UnwrapResult com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$WrapResult
InnerClasses:
com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$1
com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$2
com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$3
public EofException = com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$EofException of com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl
private UnwrapResult = com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$UnwrapResult of com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl
private WrapResult = com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl$WrapResult of com.mongodb.internal.connection.tlschannel.impl.TlsChannelImpl
public final HandshakeStatus = javax.net.ssl.SSLEngineResult$HandshakeStatus of javax.net.ssl.SSLEngineResult
public final Status = javax.net.ssl.SSLEngineResult$Status of javax.net.ssl.SSLEngineResult