public class com.mchange.v2.c3p0.util.ConnectionEventSupport
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.mchange.v2.c3p0.util.ConnectionEventSupport
super_class: java.lang.Object
{
javax.sql.PooledConnection source;
descriptor: Ljavax/sql/PooledConnection;
flags: (0x0000)
java.util.HashSet mlisteners;
descriptor: Ljava/util/HashSet;
flags: (0x0000)
public void <init>(javax.sql.PooledConnection);
descriptor: (Ljavax/sql/PooledConnection;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield com.mchange.v2.c3p0.util.ConnectionEventSupport.mlisteners:Ljava/util/HashSet;
2: aload 0
aload 1
putfield com.mchange.v2.c3p0.util.ConnectionEventSupport.source:Ljavax/sql/PooledConnection;
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/mchange/v2/c3p0/util/ConnectionEventSupport;
0 3 1 source Ljavax/sql/PooledConnection;
MethodParameters:
Name Flags
source
public synchronized void addConnectionEventListener(javax.sql.ConnectionEventListener);
descriptor: (Ljavax/sql/ConnectionEventListener;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.mchange.v2.c3p0.util.ConnectionEventSupport.mlisteners:Ljava/util/HashSet;
aload 1
invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
pop
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mchange/v2/c3p0/util/ConnectionEventSupport;
0 1 1 mlistener Ljavax/sql/ConnectionEventListener;
MethodParameters:
Name Flags
mlistener
public synchronized void removeConnectionEventListener(javax.sql.ConnectionEventListener);
descriptor: (Ljavax/sql/ConnectionEventListener;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.mchange.v2.c3p0.util.ConnectionEventSupport.mlisteners:Ljava/util/HashSet;
aload 1
invokevirtual java.util.HashSet.remove:(Ljava/lang/Object;)Z
pop
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mchange/v2/c3p0/util/ConnectionEventSupport;
0 1 1 mlistener Ljavax/sql/ConnectionEventListener;
MethodParameters:
Name Flags
mlistener
public synchronized void printListeners();
descriptor: ()V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic java.lang.System.err:Ljava/io/PrintStream;
aload 0
getfield com.mchange.v2.c3p0.util.ConnectionEventSupport.mlisteners:Ljava/util/HashSet;
invokevirtual java.io.PrintStream.println:(Ljava/lang/Object;)V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mchange/v2/c3p0/util/ConnectionEventSupport;
public synchronized int getListenerCount();
descriptor: ()I
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.mchange.v2.c3p0.util.ConnectionEventSupport.mlisteners:Ljava/util/HashSet;
invokevirtual java.util.HashSet.size:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/mchange/v2/c3p0/util/ConnectionEventSupport;
public void fireConnectionClosed();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
dup
astore 2
monitorenter
1: aload 0
getfield com.mchange.v2.c3p0.util.ConnectionEventSupport.mlisteners:Ljava/util/HashSet;
invokevirtual java.util.HashSet.clone:()Ljava/lang/Object;
checkcast java.util.Set
astore 1
start local 1 2: aload 2
monitorexit
3: goto 6
end local 1 StackMap locals: com.mchange.v2.c3p0.util.ConnectionEventSupport top com.mchange.v2.c3p0.util.ConnectionEventSupport
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
start local 1 6: StackMap locals: com.mchange.v2.c3p0.util.ConnectionEventSupport java.util.Set
StackMap stack:
new javax.sql.ConnectionEvent
dup
aload 0
getfield com.mchange.v2.c3p0.util.ConnectionEventSupport.source:Ljavax/sql/PooledConnection;
invokespecial javax.sql.ConnectionEvent.<init>:(Ljavax/sql/PooledConnection;)V
astore 2
start local 2 7: aload 1
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 3
start local 3 8: goto 11
9: StackMap locals: javax.sql.ConnectionEvent java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.sql.ConnectionEventListener
astore 4
start local 4 10: aload 4
aload 2
invokeinterface javax.sql.ConnectionEventListener.connectionClosed:(Ljavax/sql/ConnectionEvent;)V
end local 4 11: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
end local 3 12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/mchange/v2/c3p0/util/ConnectionEventSupport;
2 4 1 mlCopy Ljava/util/Set;
6 13 1 mlCopy Ljava/util/Set;
7 13 2 evt Ljavax/sql/ConnectionEvent;
8 12 3 i Ljava/util/Iterator;
10 11 4 cl Ljavax/sql/ConnectionEventListener;
Exception table:
from to target type
1 3 4 any
4 5 4 any
public void fireConnectionErrorOccurred(java.sql.SQLException);
descriptor: (Ljava/sql/SQLException;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 3
monitorenter
1: aload 0
getfield com.mchange.v2.c3p0.util.ConnectionEventSupport.mlisteners:Ljava/util/HashSet;
invokevirtual java.util.HashSet.clone:()Ljava/lang/Object;
checkcast java.util.Set
astore 2
start local 2 2: aload 3
monitorexit
3: goto 6
end local 2 StackMap locals: com.mchange.v2.c3p0.util.ConnectionEventSupport java.sql.SQLException top com.mchange.v2.c3p0.util.ConnectionEventSupport
StackMap stack: java.lang.Throwable
4: aload 3
monitorexit
5: athrow
start local 2 6: StackMap locals: com.mchange.v2.c3p0.util.ConnectionEventSupport java.sql.SQLException java.util.Set
StackMap stack:
new javax.sql.ConnectionEvent
dup
aload 0
getfield com.mchange.v2.c3p0.util.ConnectionEventSupport.source:Ljavax/sql/PooledConnection;
aload 1
invokespecial javax.sql.ConnectionEvent.<init>:(Ljavax/sql/PooledConnection;Ljava/sql/SQLException;)V
astore 3
start local 3 7: aload 2
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 4
start local 4 8: goto 11
9: StackMap locals: javax.sql.ConnectionEvent java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast javax.sql.ConnectionEventListener
astore 5
start local 5 10: aload 5
aload 3
invokeinterface javax.sql.ConnectionEventListener.connectionErrorOccurred:(Ljavax/sql/ConnectionEvent;)V
end local 5 11: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 9
end local 4 12: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/mchange/v2/c3p0/util/ConnectionEventSupport;
0 13 1 error Ljava/sql/SQLException;
2 4 2 mlCopy Ljava/util/Set;
6 13 2 mlCopy Ljava/util/Set;
7 13 3 evt Ljavax/sql/ConnectionEvent;
8 12 4 i Ljava/util/Iterator;
10 11 5 cl Ljavax/sql/ConnectionEventListener;
Exception table:
from to target type
1 3 4 any
4 5 4 any
MethodParameters:
Name Flags
error
}
SourceFile: "ConnectionEventSupport.java"