final class com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler extends com.mongodb.internal.connection.AsynchronousChannelStream$BaseCompletionHandler<org.bson.ByteBuf, java.lang.Integer, java.lang.Void>
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler
super_class: com.mongodb.internal.connection.AsynchronousChannelStream$BaseCompletionHandler
{
private final java.util.concurrent.atomic.AtomicReference<org.bson.ByteBuf> byteBufReference;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Lorg/bson/ByteBuf;>;
final com.mongodb.internal.connection.AsynchronousChannelStream this$0;
descriptor: Lcom/mongodb/internal/connection/AsynchronousChannelStream;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(org.bson.ByteBuf, com.mongodb.connection.AsyncCompletionHandler<org.bson.ByteBuf>);
descriptor: (Lcom/mongodb/internal/connection/AsynchronousChannelStream;Lorg/bson/ByteBuf;Lcom/mongodb/connection/AsyncCompletionHandler;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=4
start local 0 start local 2 start local 3 0: aload 0
aload 1
putfield com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler.this$0:Lcom/mongodb/internal/connection/AsynchronousChannelStream;
1: aload 0
aload 3
invokespecial com.mongodb.internal.connection.AsynchronousChannelStream$BaseCompletionHandler.<init>:(Lcom/mongodb/connection/AsyncCompletionHandler;)V
2: aload 0
new java.util.concurrent.atomic.AtomicReference
dup
aload 2
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
putfield com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler.byteBufReference:Ljava/util/concurrent/atomic/AtomicReference;
3: return
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/mongodb/internal/connection/AsynchronousChannelStream$BasicCompletionHandler;
0 4 2 dst Lorg/bson/ByteBuf;
0 4 3 handler Lcom/mongodb/connection/AsyncCompletionHandler<Lorg/bson/ByteBuf;>;
Signature: (Lorg/bson/ByteBuf;Lcom/mongodb/connection/AsyncCompletionHandler<Lorg/bson/ByteBuf;>;)V
MethodParameters:
Name Flags
this$0 final
dst final
handler final
public void completed(java.lang.Integer, java.lang.Void);
descriptor: (Ljava/lang/Integer;Ljava/lang/Void;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler.getHandlerAndClear:()Lcom/mongodb/connection/AsyncCompletionHandler;
astore 3
start local 3 1: aload 0
getfield com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler.byteBufReference:Ljava/util/concurrent/atomic/AtomicReference;
aconst_null
invokevirtual java.util.concurrent.atomic.AtomicReference.getAndSet:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.bson.ByteBuf
astore 4
start local 4 2: aload 1
invokevirtual java.lang.Integer.intValue:()I
iconst_m1
if_icmpne 6
3: aload 4
invokeinterface org.bson.ByteBuf.release:()V
4: aload 3
new com.mongodb.MongoSocketReadException
dup
ldc "Prematurely reached end of stream"
aload 0
getfield com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler.this$0:Lcom/mongodb/internal/connection/AsynchronousChannelStream;
getfield com.mongodb.internal.connection.AsynchronousChannelStream.serverAddress:Lcom/mongodb/ServerAddress;
invokespecial com.mongodb.MongoSocketReadException.<init>:(Ljava/lang/String;Lcom/mongodb/ServerAddress;)V
invokeinterface com.mongodb.connection.AsyncCompletionHandler.failed:(Ljava/lang/Throwable;)V
5: goto 13
StackMap locals: com.mongodb.connection.AsyncCompletionHandler org.bson.ByteBuf
StackMap stack:
6: aload 4
invokeinterface org.bson.ByteBuf.hasRemaining:()Z
ifne 10
7: aload 4
invokeinterface org.bson.ByteBuf.flip:()Lorg/bson/ByteBuf;
pop
8: aload 3
aload 4
invokeinterface com.mongodb.connection.AsyncCompletionHandler.completed:(Ljava/lang/Object;)V
9: goto 13
10: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler.this$0:Lcom/mongodb/internal/connection/AsynchronousChannelStream;
getfield com.mongodb.internal.connection.AsynchronousChannelStream.channel:Lcom/mongodb/internal/connection/ExtendedAsynchronousByteChannel;
aload 4
invokeinterface org.bson.ByteBuf.asNIO:()Ljava/nio/ByteBuffer;
aload 0
getfield com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler.this$0:Lcom/mongodb/internal/connection/AsynchronousChannelStream;
getfield com.mongodb.internal.connection.AsynchronousChannelStream.settings:Lcom/mongodb/connection/SocketSettings;
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual com.mongodb.connection.SocketSettings.getReadTimeout:(Ljava/util/concurrent/TimeUnit;)I
i2l
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
aconst_null
11: new com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler
dup
aload 0
getfield com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler.this$0:Lcom/mongodb/internal/connection/AsynchronousChannelStream;
aload 4
aload 3
invokespecial com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler.<init>:(Lcom/mongodb/internal/connection/AsynchronousChannelStream;Lorg/bson/ByteBuf;Lcom/mongodb/connection/AsyncCompletionHandler;)V
12: invokeinterface com.mongodb.internal.connection.ExtendedAsynchronousByteChannel.read:(Ljava/nio/ByteBuffer;JLjava/util/concurrent/TimeUnit;Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V
13: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/mongodb/internal/connection/AsynchronousChannelStream$BasicCompletionHandler;
0 14 1 result Ljava/lang/Integer;
0 14 2 attachment Ljava/lang/Void;
1 14 3 localHandler Lcom/mongodb/connection/AsyncCompletionHandler<Lorg/bson/ByteBuf;>;
2 14 4 localByteBuf Lorg/bson/ByteBuf;
MethodParameters:
Name Flags
result final
attachment final
public void failed(java.lang.Throwable, java.lang.Void);
descriptor: (Ljava/lang/Throwable;Ljava/lang/Void;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler.getHandlerAndClear:()Lcom/mongodb/connection/AsyncCompletionHandler;
astore 3
start local 3 1: aload 0
getfield com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler.byteBufReference:Ljava/util/concurrent/atomic/AtomicReference;
aconst_null
invokevirtual java.util.concurrent.atomic.AtomicReference.getAndSet:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.bson.ByteBuf
astore 4
start local 4 2: aload 4
invokeinterface org.bson.ByteBuf.release:()V
3: aload 1
instanceof java.nio.channels.InterruptedByTimeoutException
ifeq 6
4: aload 3
new com.mongodb.MongoSocketReadTimeoutException
dup
ldc "Timeout while receiving message"
aload 0
getfield com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler.this$0:Lcom/mongodb/internal/connection/AsynchronousChannelStream;
getfield com.mongodb.internal.connection.AsynchronousChannelStream.serverAddress:Lcom/mongodb/ServerAddress;
aload 1
invokespecial com.mongodb.MongoSocketReadTimeoutException.<init>:(Ljava/lang/String;Lcom/mongodb/ServerAddress;Ljava/lang/Throwable;)V
invokeinterface com.mongodb.connection.AsyncCompletionHandler.failed:(Ljava/lang/Throwable;)V
5: goto 7
6: StackMap locals: com.mongodb.connection.AsyncCompletionHandler org.bson.ByteBuf
StackMap stack:
aload 3
aload 1
invokeinterface com.mongodb.connection.AsyncCompletionHandler.failed:(Ljava/lang/Throwable;)V
7: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/mongodb/internal/connection/AsynchronousChannelStream$BasicCompletionHandler;
0 8 1 t Ljava/lang/Throwable;
0 8 2 attachment Ljava/lang/Void;
1 8 3 localHandler Lcom/mongodb/connection/AsyncCompletionHandler<Lorg/bson/ByteBuf;>;
2 8 4 localByteBuf Lorg/bson/ByteBuf;
MethodParameters:
Name Flags
t final
attachment final
public void failed(java.lang.Throwable, java.lang.Object);
descriptor: (Ljava/lang/Throwable;Ljava/lang/Object;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
checkcast java.lang.Void
invokevirtual com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler.failed:(Ljava/lang/Throwable;Ljava/lang/Void;)V
return
LocalVariableTable:
Start End Slot Name Signature
public void completed(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
checkcast java.lang.Integer
aload 2
checkcast java.lang.Void
invokevirtual com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler.completed:(Ljava/lang/Integer;Ljava/lang/Void;)V
return
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Lcom/mongodb/internal/connection/AsynchronousChannelStream$BaseCompletionHandler<Lorg/bson/ByteBuf;Ljava/lang/Integer;Ljava/lang/Void;>;
SourceFile: "AsynchronousChannelStream.java"
NestHost: com.mongodb.internal.connection.AsynchronousChannelStream
InnerClasses:
private abstract BaseCompletionHandler = com.mongodb.internal.connection.AsynchronousChannelStream$BaseCompletionHandler of com.mongodb.internal.connection.AsynchronousChannelStream
private final BasicCompletionHandler = com.mongodb.internal.connection.AsynchronousChannelStream$BasicCompletionHandler of com.mongodb.internal.connection.AsynchronousChannelStream