https://github.com/spring-projects/spring-framework/blob/03e695ad5ff998d8da9b89d163ec4f04747bd570/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/DataSourceUtils.java#L86

I'm unsure why SQLException is retained as a cause but IllegalStateException is discarded. It makes things like this very hard to debug:

org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection: Session/EntityManager is closed
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:86)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:330)
    at org.springframework.boot.actuate.jdbc.DataSourceHealthIndicator.getProduct(DataSourceHealthIndicator.java:122)
    at org.springframework.boot.actuate.jdbc.DataSourceHealthIndicator.doDataSourceHealthCheck(DataSourceHealthIndicator.java:105)
    ...

Comment From: snicoll

Closing in favor of PR #28669