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