public final class com.sun.jndi.ldap.pool.Pool
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.sun.jndi.ldap.pool.Pool
super_class: java.lang.Object
{
static final boolean debug;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final java.lang.ref.ReferenceQueue queue;
descriptor: Ljava/lang/ref/ReferenceQueue;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.Collection weakRefs;
descriptor: Ljava/util/Collection;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final int maxSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int prefSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int initSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Map map;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: getstatic com.sun.jndi.ldap.LdapPoolManager.debug:Z
putstatic com.sun.jndi.ldap.pool.Pool.debug:Z
1: new java.lang.ref.ReferenceQueue
dup
invokespecial java.lang.ref.ReferenceQueue.<init>:()V
putstatic com.sun.jndi.ldap.pool.Pool.queue:Ljava/lang/ref/ReferenceQueue;
2: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
invokestatic java.util.Collections.synchronizedList:(Ljava/util/List;)Ljava/util/List;
3: putstatic com.sun.jndi.ldap.pool.Pool.weakRefs:Ljava/util/Collection;
4: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(int, int, int);
descriptor: (III)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
putfield com.sun.jndi.ldap.pool.Pool.map:Ljava/util/Map;
2: aload 0
iload 2
putfield com.sun.jndi.ldap.pool.Pool.prefSize:I
3: aload 0
iload 3
putfield com.sun.jndi.ldap.pool.Pool.maxSize:I
4: aload 0
iload 1
putfield com.sun.jndi.ldap.pool.Pool.initSize:I
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/jndi/ldap/pool/Pool;
0 6 1 initSize I
0 6 2 prefSize I
0 6 3 maxSize I
MethodParameters:
Name Flags
initSize
prefSize
maxSize
public com.sun.jndi.ldap.pool.PooledConnection getPooledConnection(java.lang.Object, long, com.sun.jndi.ldap.pool.PooledConnectionFactory);
descriptor: (Ljava/lang/Object;JLcom/sun/jndi/ldap/pool/PooledConnectionFactory;)Lcom/sun/jndi/ldap/pool/PooledConnection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
ldc "get(): "
aload 1
invokevirtual com.sun.jndi.ldap.pool.Pool.d:(Ljava/lang/String;Ljava/lang/Object;)V
1: aload 0
ldc "size: "
aload 0
getfield com.sun.jndi.ldap.pool.Pool.map:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
invokevirtual com.sun.jndi.ldap.pool.Pool.d:(Ljava/lang/String;I)V
2: invokestatic com.sun.jndi.ldap.pool.Pool.expungeStaleConnections:()V
3: aload 0
getfield com.sun.jndi.ldap.pool.Pool.map:Ljava/util/Map;
dup
astore 6
monitorenter
4: aload 0
aload 1
invokevirtual com.sun.jndi.ldap.pool.Pool.getConnections:(Ljava/lang/Object;)Lcom/sun/jndi/ldap/pool/Connections;
astore 5
start local 5 5: aload 5
ifnonnull 14
6: aload 0
ldc "get(): creating new connections list for "
aload 1
invokevirtual com.sun.jndi.ldap.pool.Pool.d:(Ljava/lang/String;Ljava/lang/Object;)V
7: new com.sun.jndi.ldap.pool.Connections
dup
aload 1
aload 0
getfield com.sun.jndi.ldap.pool.Pool.initSize:I
aload 0
getfield com.sun.jndi.ldap.pool.Pool.prefSize:I
aload 0
getfield com.sun.jndi.ldap.pool.Pool.maxSize:I
8: aload 4
9: invokespecial com.sun.jndi.ldap.pool.Connections.<init>:(Ljava/lang/Object;IIILcom/sun/jndi/ldap/pool/PooledConnectionFactory;)V
astore 5
10: new com.sun.jndi.ldap.pool.ConnectionsRef
dup
aload 5
invokespecial com.sun.jndi.ldap.pool.ConnectionsRef.<init>:(Lcom/sun/jndi/ldap/pool/Connections;)V
astore 7
start local 7 11: aload 0
getfield com.sun.jndi.ldap.pool.Pool.map:Ljava/util/Map;
aload 1
aload 7
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: new com.sun.jndi.ldap.pool.ConnectionsWeakRef
dup
aload 7
getstatic com.sun.jndi.ldap.pool.Pool.queue:Ljava/lang/ref/ReferenceQueue;
invokespecial com.sun.jndi.ldap.pool.ConnectionsWeakRef.<init>:(Lcom/sun/jndi/ldap/pool/ConnectionsRef;Ljava/lang/ref/ReferenceQueue;)V
astore 8
start local 8 13: getstatic com.sun.jndi.ldap.pool.Pool.weakRefs:Ljava/util/Collection;
aload 8
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
end local 8 end local 7 14: StackMap locals: com.sun.jndi.ldap.pool.Connections java.util.Map
StackMap stack:
aload 6
monitorexit
15: goto 18
end local 5 StackMap locals: com.sun.jndi.ldap.pool.Pool java.lang.Object long com.sun.jndi.ldap.pool.PooledConnectionFactory top java.util.Map
StackMap stack: java.lang.Throwable
16: aload 6
monitorexit
17: athrow
start local 5 18: StackMap locals: com.sun.jndi.ldap.pool.Pool java.lang.Object long com.sun.jndi.ldap.pool.PooledConnectionFactory com.sun.jndi.ldap.pool.Connections
StackMap stack:
aload 0
ldc "get(): size after: "
aload 0
getfield com.sun.jndi.ldap.pool.Pool.map:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
invokevirtual com.sun.jndi.ldap.pool.Pool.d:(Ljava/lang/String;I)V
19: aload 5
lload 2
aload 4
invokevirtual com.sun.jndi.ldap.pool.Connections.get:(JLcom/sun/jndi/ldap/pool/PooledConnectionFactory;)Lcom/sun/jndi/ldap/pool/PooledConnection;
areturn
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/sun/jndi/ldap/pool/Pool;
0 20 1 id Ljava/lang/Object;
0 20 2 timeout J
0 20 4 factory Lcom/sun/jndi/ldap/pool/PooledConnectionFactory;
5 16 5 conns Lcom/sun/jndi/ldap/pool/Connections;
18 20 5 conns Lcom/sun/jndi/ldap/pool/Connections;
11 14 7 connsRef Lcom/sun/jndi/ldap/pool/ConnectionsRef;
13 14 8 weakRef Ljava/lang/ref/Reference;
Exception table:
from to target type
4 15 16 any
16 17 16 any
Exceptions:
throws javax.naming.NamingException
MethodParameters:
Name Flags
id
timeout
factory
private com.sun.jndi.ldap.pool.Connections getConnections(java.lang.Object);
descriptor: (Ljava/lang/Object;)Lcom/sun/jndi/ldap/pool/Connections;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.jndi.ldap.pool.Pool.map:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast com.sun.jndi.ldap.pool.ConnectionsRef
astore 2
start local 2 1: aload 2
ifnull 2
aload 2
invokevirtual com.sun.jndi.ldap.pool.ConnectionsRef.getConnections:()Lcom/sun/jndi/ldap/pool/Connections;
goto 3
StackMap locals: com.sun.jndi.ldap.pool.ConnectionsRef
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: com.sun.jndi.ldap.pool.Connections
3: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/jndi/ldap/pool/Pool;
0 4 1 id Ljava/lang/Object;
1 4 2 ref Lcom/sun/jndi/ldap/pool/ConnectionsRef;
MethodParameters:
Name Flags
id
public void expire(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.jndi.ldap.pool.Pool.map:Ljava/util/Map;
dup
astore 3
monitorenter
1: aload 0
getfield com.sun.jndi.ldap.pool.Pool.map:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
astore 4
start local 4 2: aload 4
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 5
start local 5 3: goto 8
4: StackMap locals: java.util.Map java.util.Collection java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.jndi.ldap.pool.ConnectionsRef
invokevirtual com.sun.jndi.ldap.pool.ConnectionsRef.getConnections:()Lcom/sun/jndi/ldap/pool/Connections;
astore 6
start local 6 5: aload 6
lload 1
invokevirtual com.sun.jndi.ldap.pool.Connections.expire:(J)Z
ifeq 8
6: aload 0
ldc "expire(): removing "
aload 6
invokevirtual com.sun.jndi.ldap.pool.Pool.d:(Ljava/lang/String;Ljava/lang/Object;)V
7: aload 5
invokeinterface java.util.Iterator.remove:()V
end local 6 8: StackMap locals:
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
end local 5 end local 4 9: aload 3
monitorexit
10: goto 13
StackMap locals: com.sun.jndi.ldap.pool.Pool long java.util.Map
StackMap stack: java.lang.Throwable
11: aload 3
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
invokestatic com.sun.jndi.ldap.pool.Pool.expungeStaleConnections:()V
14: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/sun/jndi/ldap/pool/Pool;
0 15 1 threshold J
2 9 4 coll Ljava/util/Collection;
3 9 5 iter Ljava/util/Iterator;
5 8 6 conns Lcom/sun/jndi/ldap/pool/Connections;
Exception table:
from to target type
1 10 11 any
11 12 11 any
MethodParameters:
Name Flags
threshold
private static void expungeStaleConnections();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=0
0: aconst_null
astore 0
start local 0 1: goto 10
2: StackMap locals: com.sun.jndi.ldap.pool.ConnectionsWeakRef
StackMap stack:
aload 0
invokevirtual com.sun.jndi.ldap.pool.ConnectionsWeakRef.getConnections:()Lcom/sun/jndi/ldap/pool/Connections;
astore 1
start local 1 3: getstatic com.sun.jndi.ldap.pool.Pool.debug:Z
ifeq 7
4: getstatic java.lang.System.err:Ljava/io/PrintStream;
5: new java.lang.StringBuilder
dup
ldc "weak reference cleanup: Closing Connections:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
7: StackMap locals: com.sun.jndi.ldap.pool.Connections
StackMap stack:
aload 1
invokevirtual com.sun.jndi.ldap.pool.Connections.close:()V
8: getstatic com.sun.jndi.ldap.pool.Pool.weakRefs:Ljava/util/Collection;
aload 0
invokeinterface java.util.Collection.remove:(Ljava/lang/Object;)Z
pop
9: aload 0
invokevirtual com.sun.jndi.ldap.pool.ConnectionsWeakRef.clear:()V
end local 1 10: StackMap locals:
StackMap stack:
getstatic com.sun.jndi.ldap.pool.Pool.queue:Ljava/lang/ref/ReferenceQueue;
invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
checkcast com.sun.jndi.ldap.pool.ConnectionsWeakRef
dup
astore 0
ifnonnull 2
11: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 12 0 releaseRef Lcom/sun/jndi/ldap/pool/ConnectionsWeakRef;
3 10 1 conns Lcom/sun/jndi/ldap/pool/Connections;
public void showStats(java.io.PrintStream);
descriptor: (Ljava/io/PrintStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 1
ldc "===== Pool start ======================"
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: aload 1
new java.lang.StringBuilder
dup
ldc "maximum pool size: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.jndi.ldap.pool.Pool.maxSize:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
2: aload 1
new java.lang.StringBuilder
dup
ldc "preferred pool size: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.jndi.ldap.pool.Pool.prefSize:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
3: aload 1
new java.lang.StringBuilder
dup
ldc "initial pool size: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.jndi.ldap.pool.Pool.initSize:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
4: aload 1
new java.lang.StringBuilder
dup
ldc "current pool size: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield com.sun.jndi.ldap.pool.Pool.map:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
5: aload 0
getfield com.sun.jndi.ldap.pool.Pool.map:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
astore 5
start local 5 6: aload 5
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
start local 6 7: goto 12
8: StackMap locals: com.sun.jndi.ldap.pool.Pool java.io.PrintStream top top top java.util.Set java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 2
start local 2 9: aload 2
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
astore 3
start local 3 10: aload 2
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast com.sun.jndi.ldap.pool.ConnectionsRef
invokevirtual com.sun.jndi.ldap.pool.ConnectionsRef.getConnections:()Lcom/sun/jndi/ldap/pool/Connections;
astore 4
start local 4 11: aload 1
new java.lang.StringBuilder
dup
ldc " "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc ":"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual com.sun.jndi.ldap.pool.Connections.getStats:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
end local 4 end local 3 end local 2 12: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
13: aload 1
ldc "====== Pool end ====================="
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
14: return
end local 6 end local 5 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/sun/jndi/ldap/pool/Pool;
0 15 1 out Ljava/io/PrintStream;
9 12 2 entry Ljava/util/Map$Entry;
10 12 3 id Ljava/lang/Object;
11 12 4 conns Lcom/sun/jndi/ldap/pool/Connections;
6 15 5 entries Ljava/util/Set;
7 15 6 iter Ljava/util/Iterator;
MethodParameters:
Name Flags
out
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
aload 0
invokespecial java.lang.Object.toString:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield com.sun.jndi.ldap.pool.Pool.map:Ljava/util/Map;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/jndi/ldap/pool/Pool;
private void d(java.lang.String, int);
descriptor: (Ljava/lang/String;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.sun.jndi.ldap.pool.Pool.debug:Z
ifeq 2
1: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/jndi/ldap/pool/Pool;
0 3 1 msg Ljava/lang/String;
0 3 2 i I
MethodParameters:
Name Flags
msg
i
private void d(java.lang.String, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.sun.jndi.ldap.pool.Pool.debug:Z
ifeq 2
1: getstatic java.lang.System.err:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
2: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/jndi/ldap/pool/Pool;
0 3 1 msg Ljava/lang/String;
0 3 2 obj Ljava/lang/Object;
MethodParameters:
Name Flags
msg
obj
}
SourceFile: "Pool.java"
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map