* @param exception the exception that caused the event, or {@code null} if
* it is a close event
*/
private void fireConnectionEventListeners(SqlException exception) {
if (!listeners_.isEmpty()) {
final ConnectionEvent event = (exception == null) ?
new ConnectionEvent(this) :
new ConnectionEvent(this, exception.getSQLException());
eventIterators++;
try {
for (Iterator it = listeners_.iterator(); it.hasNext(); ) {
final ConnectionEventListener listener =
(ConnectionEventListener) it.next();