¿DBCP connection pool connection.close () devuelve la conexión al pool

El uso de BasicDataSource de DBCP si hacemos un getConnection () y en el bloque finalmente cerramos la conexión, ¿realmente devuelve la conexión al grupo o cierra la conexión? El código de fragmento que estoy comprobando es este

try {
        Connection conn1 = getJdbcTemplate().getDataSource()
                .getConnection();
        //Some code to call stored proc 

    } catch (SQLException sqlEx) {
        throw sqlEx;
    } finally {
        try {
            if (conn != null) {
                conn.close();
            }
        } catch (SQLException ex1) {
            throw ex1;
        }

    }

Estaba revisando el código fuente de BasicDataSource y llegué a esta clase de contenedor para la conexión.

private class PoolGuardConnectionWrapper extends DelegatingConnection {

    private Connection delegate;

    PoolGuardConnectionWrapper(Connection delegate) {
        super(delegate);
        this.delegate = delegate;
    }

    public void close() throws SQLException {
        if (delegate != null) {
            this.delegate.close();
            this.delegate = null;
            super.setDelegate(null);
        }
    }

El objeto delegado si es de tipo java.sql.Connection. El código contenedor llama al método de cierre del delegado que cerrará la colección en lugar de devolver la conexión al grupo. ¿Es este un problema conocido con DBCP o estoy leyendo el código fuente incorrectamente, por favor hágamelo saber?

Gracias

Respuestas a la pregunta(1)

Su respuesta a la pregunta