class com.mongodb.internal.connection.DefaultConnectionPool$1 implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.mongodb.internal.connection.DefaultConnectionPool$1
super_class: java.lang.Object
{
final com.mongodb.internal.connection.DefaultConnectionPool this$0;
descriptor: Lcom/mongodb/internal/connection/DefaultConnectionPool;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private final com.mongodb.async.SingleResultCallback val$errHandlingCallback;
descriptor: Lcom/mongodb/async/SingleResultCallback;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final long val$startTimeMillis;
descriptor: J
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(com.mongodb.internal.connection.DefaultConnectionPool, com.mongodb.async.SingleResultCallback, long);
descriptor: (Lcom/mongodb/internal/connection/DefaultConnectionPool;Lcom/mongodb/async/SingleResultCallback;J)V
flags: (0x0000)
Code:
stack=3, locals=5, args_size=4
start local 0 0: aload 0
aload 1
putfield com.mongodb.internal.connection.DefaultConnectionPool$1.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
aload 0
aload 2
putfield com.mongodb.internal.connection.DefaultConnectionPool$1.val$errHandlingCallback:Lcom/mongodb/async/SingleResultCallback;
aload 0
lload 3
putfield com.mongodb.internal.connection.DefaultConnectionPool$1.val$startTimeMillis:J
aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/DefaultConnectionPool$1;
MethodParameters:
Name Flags
this$0 final
val$errHandlingCallback final
val$startTimeMillis final
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool$1.getRemainingWaitTime:()J
lconst_0
lcmp
ifgt 3
1: aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$1.val$errHandlingCallback:Lcom/mongodb/async/SingleResultCallback;
aconst_null
aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$1.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool.createTimeoutException:()Lcom/mongodb/MongoTimeoutException;
invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
2: goto 14
3: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$1.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
aload 0
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool$1.getRemainingWaitTime:()J
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool.getPooledConnection:(JLjava/util/concurrent/TimeUnit;)Lcom/mongodb/internal/connection/DefaultConnectionPool$PooledConnection;
astore 1
start local 1 4: aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$1.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
aload 1
aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$1.val$errHandlingCallback:Lcom/mongodb/async/SingleResultCallback;
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool.openAsync:(Lcom/mongodb/internal/connection/DefaultConnectionPool$PooledConnection;Lcom/mongodb/async/SingleResultCallback;)V
end local 1 5: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
6: astore 1
start local 1 7: aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$1.val$errHandlingCallback:Lcom/mongodb/async/SingleResultCallback;
aconst_null
aload 1
invokeinterface com.mongodb.async.SingleResultCallback.onResult:(Ljava/lang/Object;Ljava/lang/Throwable;)V
end local 1 8: aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$1.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.waitQueueSize:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
pop
9: aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$1.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.connectionPoolListener:Lcom/mongodb/event/ConnectionPoolListener;
new com.mongodb.event.ConnectionPoolWaitQueueExitedEvent
dup
aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$1.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.serverId:Lcom/mongodb/connection/ServerId;
invokespecial com.mongodb.event.ConnectionPoolWaitQueueExitedEvent.<init>:(Lcom/mongodb/connection/ServerId;)V
invokeinterface com.mongodb.event.ConnectionPoolListener.waitQueueExited:(Lcom/mongodb/event/ConnectionPoolWaitQueueExitedEvent;)V
goto 16
10: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
11: aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$1.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.waitQueueSize:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
pop
12: aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$1.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.connectionPoolListener:Lcom/mongodb/event/ConnectionPoolListener;
new com.mongodb.event.ConnectionPoolWaitQueueExitedEvent
dup
aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$1.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.serverId:Lcom/mongodb/connection/ServerId;
invokespecial com.mongodb.event.ConnectionPoolWaitQueueExitedEvent.<init>:(Lcom/mongodb/connection/ServerId;)V
invokeinterface com.mongodb.event.ConnectionPoolListener.waitQueueExited:(Lcom/mongodb/event/ConnectionPoolWaitQueueExitedEvent;)V
13: aload 2
athrow
14: StackMap locals:
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$1.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.waitQueueSize:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.decrementAndGet:()I
pop
15: aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$1.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.connectionPoolListener:Lcom/mongodb/event/ConnectionPoolListener;
new com.mongodb.event.ConnectionPoolWaitQueueExitedEvent
dup
aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$1.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.serverId:Lcom/mongodb/connection/ServerId;
invokespecial com.mongodb.event.ConnectionPoolWaitQueueExitedEvent.<init>:(Lcom/mongodb/connection/ServerId;)V
invokeinterface com.mongodb.event.ConnectionPoolListener.waitQueueExited:(Lcom/mongodb/event/ConnectionPoolWaitQueueExitedEvent;)V
16: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/mongodb/internal/connection/DefaultConnectionPool$1;
4 5 1 connection Lcom/mongodb/internal/connection/DefaultConnectionPool$PooledConnection;
7 8 1 t Ljava/lang/Throwable;
Exception table:
from to target type
0 5 6 Class java.lang.Throwable
0 8 10 any
private long getRemainingWaitTime();
descriptor: ()J
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$1.val$startTimeMillis:J
aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$1.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.settings:Lcom/mongodb/connection/ConnectionPoolSettings;
getstatic java.util.concurrent.TimeUnit.MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invokevirtual com.mongodb.connection.ConnectionPoolSettings.getMaxWaitTime:(Ljava/util/concurrent/TimeUnit;)J
ladd
invokestatic java.lang.System.currentTimeMillis:()J
lsub
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/DefaultConnectionPool$1;
}
SourceFile: "DefaultConnectionPool.java"
EnclosingMethod: com.mongodb.internal.connection.DefaultConnectionPool.getAsync:(Lcom/mongodb/async/SingleResultCallback;)V
NestHost: com.mongodb.internal.connection.DefaultConnectionPool
InnerClasses:
com.mongodb.internal.connection.DefaultConnectionPool$1
private PooledConnection = com.mongodb.internal.connection.DefaultConnectionPool$PooledConnection of com.mongodb.internal.connection.DefaultConnectionPool