code: public void free(Connection connection) {
          try {
              if (!connection.isClosed()){
                  // ensure connections returned to pool as read-only
                  setConnectionReadOnly(connection, true);
                  connection.close();
              } else {
                  logger.debug("Ignoring attempt to close a previously closed connection");
              }
          } catch (SQLException sqle) {
              logger.warn("Unable to close connection", sqle);
          } finally {
              if (logger.isDebugEnabled()) {
                  logger.debug("Returned connection to pool (" + toString() + ")");
              }
          }
      }
docs: <p>
  Releases the specified connection and returns it to the pool.
  </p>
  
  @param connection
  A JDBC connection.