/**
  * Removes the specified listener from the list.
  *
  * @see #addConnectionEventListener
  * @see #fireConnectionEvent
  */
 public synchronized void removeConnectionEventListener(ConnectionEventListener listener) {
   // Clone the list of listeners to avoid concurrent modifications. See
   // bug [1113040] Small bug in net.sourceforge.jtds.jdbcx.PooledConnection
   // for a description of how these can occur. The method still needs to
   // be synchronized to prevent race conditions.
   listeners = (ArrayList) listeners.clone();
   // Now remove the listener from the new, cloned list
   listeners.remove(listener);
 }
 /**
  * Removes the specified listener from the list.
  *
  * @see #addConnectionEventListener
  * @see #fireConnectionEvent
  */
 public synchronized void removeConnectionEventListener(ConnectionEventListener listener) {
   _listeners.remove(listener);
 }