class com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory implements com.mongodb.internal.connection.ConcurrentPool$ItemFactory<com.mongodb.internal.connection.UsageTrackingInternalConnection>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory
super_class: java.lang.Object
{
private final com.mongodb.internal.connection.InternalConnectionFactory internalConnectionFactory;
descriptor: Lcom/mongodb/internal/connection/InternalConnectionFactory;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
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, com.mongodb.internal.connection.InternalConnectionFactory);
descriptor: (Lcom/mongodb/internal/connection/DefaultConnectionPool;Lcom/mongodb/internal/connection/InternalConnectionFactory;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 2
putfield com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.internalConnectionFactory:Lcom/mongodb/internal/connection/InternalConnectionFactory;
2: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/mongodb/internal/connection/DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory;
0 3 2 internalConnectionFactory Lcom/mongodb/internal/connection/InternalConnectionFactory;
MethodParameters:
Name Flags
this$0 final
internalConnectionFactory final
public com.mongodb.internal.connection.UsageTrackingInternalConnection create(boolean);
descriptor: (Z)Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: new com.mongodb.internal.connection.UsageTrackingInternalConnection
dup
aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.internalConnectionFactory:Lcom/mongodb/internal/connection/InternalConnectionFactory;
aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.serverId:Lcom/mongodb/connection/ServerId;
invokeinterface com.mongodb.internal.connection.InternalConnectionFactory.create:(Lcom/mongodb/connection/ServerId;)Lcom/mongodb/internal/connection/InternalConnection;
aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.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
invokespecial com.mongodb.internal.connection.UsageTrackingInternalConnection.<init>:(Lcom/mongodb/internal/connection/InternalConnection;I)V
1: astore 2
start local 2 2: iload 1
ifeq 4
3: aload 2
invokevirtual com.mongodb.internal.connection.UsageTrackingInternalConnection.open:()V
4: StackMap locals: com.mongodb.internal.connection.UsageTrackingInternalConnection
StackMap stack:
aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.connectionPoolListener:Lcom/mongodb/event/ConnectionPoolListener;
new com.mongodb.event.ConnectionAddedEvent
dup
aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
aload 2
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool.getId:(Lcom/mongodb/internal/connection/InternalConnection;)Lcom/mongodb/connection/ConnectionId;
invokespecial com.mongodb.event.ConnectionAddedEvent.<init>:(Lcom/mongodb/connection/ConnectionId;)V
invokeinterface com.mongodb.event.ConnectionPoolListener.connectionAdded:(Lcom/mongodb/event/ConnectionAddedEvent;)V
5: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/mongodb/internal/connection/DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory;
0 6 1 initialize Z
2 6 2 internalConnection Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;
MethodParameters:
Name Flags
initialize final
public void close(com.mongodb.internal.connection.UsageTrackingInternalConnection);
descriptor: (Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
getfield com.mongodb.internal.connection.DefaultConnectionPool.connectionPoolListener:Lcom/mongodb/event/ConnectionPoolListener;
new com.mongodb.event.ConnectionRemovedEvent
dup
aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
aload 1
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool.getId:(Lcom/mongodb/internal/connection/InternalConnection;)Lcom/mongodb/connection/ConnectionId;
aload 0
aload 1
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.getReasonForClosing:(Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;)Lcom/mongodb/event/ConnectionRemovedEvent$Reason;
invokespecial com.mongodb.event.ConnectionRemovedEvent.<init>:(Lcom/mongodb/connection/ConnectionId;Lcom/mongodb/event/ConnectionRemovedEvent$Reason;)V
invokeinterface com.mongodb.event.ConnectionPoolListener.connectionRemoved:(Lcom/mongodb/event/ConnectionRemovedEvent;)V
1: getstatic com.mongodb.internal.connection.DefaultConnectionPool.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
invokeinterface com.mongodb.diagnostics.logging.Logger.isInfoEnabled:()Z
ifeq 5
2: getstatic com.mongodb.internal.connection.DefaultConnectionPool.LOGGER:Lcom/mongodb/diagnostics/logging/Logger;
ldc "Closed connection [%s] to %s because %s."
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
aload 1
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool.getId:(Lcom/mongodb/internal/connection/InternalConnection;)Lcom/mongodb/connection/ConnectionId;
aastore
dup
iconst_1
aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.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
dup
iconst_2
3: aload 0
aload 1
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.getReasonStringForClosing:(Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;)Ljava/lang/String;
aastore
4: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokeinterface com.mongodb.diagnostics.logging.Logger.info:(Ljava/lang/String;)V
5: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.mongodb.internal.connection.UsageTrackingInternalConnection.close:()V
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/mongodb/internal/connection/DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory;
0 7 1 connection Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;
MethodParameters:
Name Flags
connection final
private java.lang.String getReasonStringForClosing(com.mongodb.internal.connection.UsageTrackingInternalConnection);
descriptor: (Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;)Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.mongodb.internal.connection.UsageTrackingInternalConnection.isClosed:()Z
ifeq 3
1: ldc "there was a socket exception raised by this connection"
astore 2
start local 2 2: goto 13
end local 2 StackMap locals:
StackMap stack:
3: aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
aload 1
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool.fromPreviousGeneration:(Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;)Z
ifeq 6
4: ldc "there was a socket exception raised on another connection from this pool"
astore 2
start local 2 5: goto 13
end local 2 StackMap locals:
StackMap stack:
6: aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
aload 1
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool.pastMaxLifeTime:(Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;)Z
ifeq 9
7: ldc "it is past its maximum allowed life time"
astore 2
start local 2 8: goto 13
end local 2 StackMap locals:
StackMap stack:
9: aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
aload 1
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool.pastMaxIdleTime:(Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;)Z
ifeq 12
10: ldc "it is past its maximum allowed idle time"
astore 2
start local 2 11: goto 13
end local 2 12: StackMap locals:
StackMap stack:
ldc "the pool has been closed"
astore 2
start local 2 13: StackMap locals: java.lang.String
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/mongodb/internal/connection/DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory;
0 14 1 connection Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;
2 3 2 reason Ljava/lang/String;
5 6 2 reason Ljava/lang/String;
8 9 2 reason Ljava/lang/String;
11 12 2 reason Ljava/lang/String;
13 14 2 reason Ljava/lang/String;
MethodParameters:
Name Flags
connection final
private com.mongodb.event.ConnectionRemovedEvent$Reason getReasonForClosing(com.mongodb.internal.connection.UsageTrackingInternalConnection);
descriptor: (Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;)Lcom/mongodb/event/ConnectionRemovedEvent$Reason;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.mongodb.internal.connection.UsageTrackingInternalConnection.isClosed:()Z
ifeq 3
1: getstatic com.mongodb.event.ConnectionRemovedEvent$Reason.ERROR:Lcom/mongodb/event/ConnectionRemovedEvent$Reason;
astore 2
start local 2 2: goto 13
end local 2 StackMap locals:
StackMap stack:
3: aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
aload 1
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool.fromPreviousGeneration:(Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;)Z
ifeq 6
4: getstatic com.mongodb.event.ConnectionRemovedEvent$Reason.STALE:Lcom/mongodb/event/ConnectionRemovedEvent$Reason;
astore 2
start local 2 5: goto 13
end local 2 StackMap locals:
StackMap stack:
6: aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
aload 1
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool.pastMaxLifeTime:(Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;)Z
ifeq 9
7: getstatic com.mongodb.event.ConnectionRemovedEvent$Reason.MAX_LIFE_TIME_EXCEEDED:Lcom/mongodb/event/ConnectionRemovedEvent$Reason;
astore 2
start local 2 8: goto 13
end local 2 StackMap locals:
StackMap stack:
9: aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
aload 1
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool.pastMaxIdleTime:(Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;)Z
ifeq 12
10: getstatic com.mongodb.event.ConnectionRemovedEvent$Reason.MAX_IDLE_TIME_EXCEEDED:Lcom/mongodb/event/ConnectionRemovedEvent$Reason;
astore 2
start local 2 11: goto 13
end local 2 12: StackMap locals:
StackMap stack:
getstatic com.mongodb.event.ConnectionRemovedEvent$Reason.POOL_CLOSED:Lcom/mongodb/event/ConnectionRemovedEvent$Reason;
astore 2
start local 2 13: StackMap locals: com.mongodb.event.ConnectionRemovedEvent$Reason
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lcom/mongodb/internal/connection/DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory;
0 14 1 connection Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;
2 3 2 reason Lcom/mongodb/event/ConnectionRemovedEvent$Reason;
5 6 2 reason Lcom/mongodb/event/ConnectionRemovedEvent$Reason;
8 9 2 reason Lcom/mongodb/event/ConnectionRemovedEvent$Reason;
11 12 2 reason Lcom/mongodb/event/ConnectionRemovedEvent$Reason;
13 14 2 reason Lcom/mongodb/event/ConnectionRemovedEvent$Reason;
MethodParameters:
Name Flags
connection final
public com.mongodb.internal.connection.ConcurrentPool$Prune shouldPrune(com.mongodb.internal.connection.UsageTrackingInternalConnection);
descriptor: (Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;)Lcom/mongodb/internal/connection/ConcurrentPool$Prune;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.this$0:Lcom/mongodb/internal/connection/DefaultConnectionPool;
aload 1
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool.shouldPrune:(Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;)Z
ifeq 1
getstatic com.mongodb.internal.connection.ConcurrentPool$Prune.YES:Lcom/mongodb/internal/connection/ConcurrentPool$Prune;
goto 2
StackMap locals:
StackMap stack:
1: getstatic com.mongodb.internal.connection.ConcurrentPool$Prune.NO:Lcom/mongodb/internal/connection/ConcurrentPool$Prune;
StackMap locals:
StackMap stack: com.mongodb.internal.connection.ConcurrentPool$Prune
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/mongodb/internal/connection/DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory;
0 3 1 usageTrackingConnection Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;
Signature: (Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;)Lcom/mongodb/internal/connection/ConcurrentPool$Prune;
MethodParameters:
Name Flags
usageTrackingConnection final
public java.lang.Object create(boolean);
descriptor: (Z)Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
iload 1
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.create:(Z)Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;
areturn
LocalVariableTable:
Start End Slot Name Signature
public void close(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast com.mongodb.internal.connection.UsageTrackingInternalConnection
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.close:(Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;)V
return
LocalVariableTable:
Start End Slot Name Signature
public com.mongodb.internal.connection.ConcurrentPool$Prune shouldPrune(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/mongodb/internal/connection/ConcurrentPool$Prune;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
aload 1
checkcast com.mongodb.internal.connection.UsageTrackingInternalConnection
invokevirtual com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory.shouldPrune:(Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;)Lcom/mongodb/internal/connection/ConcurrentPool$Prune;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Lcom/mongodb/internal/connection/ConcurrentPool$ItemFactory<Lcom/mongodb/internal/connection/UsageTrackingInternalConnection;>;
SourceFile: "DefaultConnectionPool.java"
NestHost: com.mongodb.internal.connection.DefaultConnectionPool
InnerClasses:
public final Reason = com.mongodb.event.ConnectionRemovedEvent$Reason of com.mongodb.event.ConnectionRemovedEvent
public abstract ItemFactory = com.mongodb.internal.connection.ConcurrentPool$ItemFactory of com.mongodb.internal.connection.ConcurrentPool
public final Prune = com.mongodb.internal.connection.ConcurrentPool$Prune of com.mongodb.internal.connection.ConcurrentPool
private UsageTrackingInternalConnectionItemFactory = com.mongodb.internal.connection.DefaultConnectionPool$UsageTrackingInternalConnectionItemFactory of com.mongodb.internal.connection.DefaultConnectionPool