code: public boolean dissociateManagedConnection(Object connection, ManagedConnection mc, ManagedConnectionFactory mcf)
        throws ResourceException
     {
        log.tracef("dissociateManagedConnection(%s, %s, %s)", connection, mc, mcf);
        
        if (connection == null || mc == null || mcf == null)
           throw new ResourceException();
  
        org.ironjacamar.core.connectionmanager.listener.ConnectionListener cl =
           pool.findConnectionListener(mc, connection);
  
        if (cl != null)
        {
           if (ccm != null)
           {
              ccm.unregisterConnection(this, cl, connection);
           }
  
           cl.removeConnection(connection);
  
           if (cl.getConnections().isEmpty())
           {
              pool.delist(cl);
              returnConnectionListener(cl, false);
  
              return true;
           }
        }
        else
        {
           throw new ResourceException();
        }
  
        return false;
     }
docs: {@inheritDoc}