class com.mongodb.internal.connection.DefaultConnectionPool$3 implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.mongodb.internal.connection.DefaultConnectionPool$3
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
void <init>(com.mongodb.internal.connection.DefaultConnectionPool);
descriptor: (Lcom/mongodb/internal/connection/DefaultConnectionPool;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // com.mongodb.internal.connection.DefaultConnectionPool$3 this
0: .line 301
aload 0 /* this */
aload 1
putfield com.mongodb.internal.connection.DefaultConnectionPool$3.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.mongodb.internal.connection.DefaultConnectionPool$3 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mongodb/internal/connection/DefaultConnectionPool$3;
MethodParameters:
Name Flags
this$0 final
public synchronized void run();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=6, locals=2, args_size=1
start local 0 // com.mongodb.internal.connection.DefaultConnectionPool$3 this
0: .line 305
aload 0 /* this */
getfield com.mongodb.internal.connection.DefaultConnectionPool$3.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.generation:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
istore 1 /* curGeneration */
start local 1 // int curGeneration
1: .line 306
aload 0 /* this */
getfield com.mongodb.internal.connection.DefaultConnectionPool$3.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool.shouldPrune:()Z
ifne 2
iload 1 /* curGeneration */
aload 0 /* this */
getfield com.mongodb.internal.connection.DefaultConnectionPool$3.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.lastPrunedGeneration:Ljava/util/concurrent/atomic/AtomicInteger;
invokevirtual java.util.concurrent.atomic.AtomicInteger.get:()I
if_icmple 5
2: .line 307
StackMap locals: int
StackMap stack:
getstatic com.mongodb.internal.connection.DefaultConnectionPool.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
invokeinterface com.mongodb.diagnostics.logging.Logger.isDebugEnabled:()Z
ifeq 4
3: .line 308
getstatic com.mongodb.internal.connection.DefaultConnectionPool.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
ldc "Pruning pooled connections to %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0 /* this */
getfield com.mongodb.internal.connection.DefaultConnectionPool$3.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.serverId:Lcom/mongodb/connection/ServerId;
invokevirtual com.mongodb.connection.ServerId.getAddress:()Lcom/mongodb/ServerAddress;
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
4: .line 310
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.mongodb.internal.connection.DefaultConnectionPool$3.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.pool:Lcom/mongodb/internal/connection/ConcurrentPool;
invokevirtual com.mongodb.internal.connection.ConcurrentPool.prune:()V
5: .line 312
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.mongodb.internal.connection.DefaultConnectionPool$3.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.lastPrunedGeneration:Ljava/util/concurrent/atomic/AtomicInteger;
iload 1 /* curGeneration */
invokevirtual java.util.concurrent.atomic.AtomicInteger.set:(I)V
6: .line 313
aload 0 /* this */
getfield com.mongodb.internal.connection.DefaultConnectionPool$3.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool.shouldEnsureMinSize:()Z
ifeq 14
7: .line 314
getstatic com.mongodb.internal.connection.DefaultConnectionPool.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
invokeinterface com.mongodb.diagnostics.logging.Logger.isDebugEnabled:()Z
ifeq 9
8: .line 315
getstatic com.mongodb.internal.connection.DefaultConnectionPool.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
ldc "Ensuring minimum pooled connections to %s"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0 /* this */
getfield com.mongodb.internal.connection.DefaultConnectionPool$3.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.serverId:Lcom/mongodb/connection/ServerId;
invokevirtual com.mongodb.connection.ServerId.getAddress:()Lcom/mongodb/ServerAddress;
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
9: .line 317
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.mongodb.internal.connection.DefaultConnectionPool$3.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.pool:Lcom/mongodb/internal/connection/ConcurrentPool;
aload 0 /* this */
getfield com.mongodb.internal.connection.DefaultConnectionPool$3.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.settings:Lcom/mongodb/connection/ConnectionPoolSettings;
invokevirtual com.mongodb.connection.ConnectionPoolSettings.getMinSize:()I
iconst_1
invokevirtual com.mongodb.internal.connection.ConcurrentPool.ensureMinSize:(IZ)V
end local 1 // int curGeneration
10: .line 319
goto 14
StackMap locals: com.mongodb.internal.connection.DefaultConnectionPool$3
StackMap stack: com.mongodb.MongoInterruptedException
11: pop
goto 14
12: .line 321
StackMap locals:
StackMap stack: java.lang.Exception
astore 1 /* e */
start local 1 // java.lang.Exception e
13: .line 322
getstatic com.mongodb.internal.connection.DefaultConnectionPool.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
ldc "Exception thrown during connection pool background maintenance task"
aload 1 /* e */
invokeinterface com.mongodb.diagnostics.logging.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 1 // java.lang.Exception e
14: .line 324
StackMap locals:
StackMap stack:
return
end local 0 // com.mongodb.internal.connection.DefaultConnectionPool$3 this
LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/mongodb/internal/connection/DefaultConnectionPool$3;
1 10 1 curGeneration I
13 14 1 e Ljava/lang/Exception;
Exception table:
from to target type
0 10 11 Class com.mongodb.MongoInterruptedException
0 10 12 Class java.lang.Exception
}
SourceFile: "DefaultConnectionPool.java"
EnclosingMethod: com.mongodb.internal.connection.DefaultConnectionPool.createMaintenanceTask:()Ljava/lang/Runnable;
NestHost: com.mongodb.internal.connection.DefaultConnectionPool
InnerClasses:
com.mongodb.internal.connection.DefaultConnectionPool$3