From e98b602d4fd121097ebc8f74ec2dcbcb9c3afd1f Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Thu, 23 Jun 2022 08:59:42 +0200 Subject: [PATCH] Polish "Fix DataSourceUtils inconsistent exception handling" See gh-28669 --- .../jdbc/CannotGetJdbcConnectionException.java | 7 ++++++- .../jdbc/datasource/DataSourceUtilsTests.java | 17 +++++++++-------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/CannotGetJdbcConnectionException.java b/spring-jdbc/src/main/java/org/springframework/jdbc/CannotGetJdbcConnectionException.java index 28b6c21140b..a8b87b760e0 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/CannotGetJdbcConnectionException.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/CannotGetJdbcConnectionException.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2022 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -48,6 +48,11 @@ public class CannotGetJdbcConnectionException extends DataAccessResourceFailureE super(msg, ex); } + /** + * Constructor for CannotGetJdbcConnectionException. + * @param msg the detail message + * @param ex the root cause IllegalStateException + */ public CannotGetJdbcConnectionException(String msg, IllegalStateException ex) { super(msg, ex); } diff --git a/spring-jdbc/src/test/java/org/springframework/jdbc/datasource/DataSourceUtilsTests.java b/spring-jdbc/src/test/java/org/springframework/jdbc/datasource/DataSourceUtilsTests.java index 67f91299433..399b6894bc0 100644 --- a/spring-jdbc/src/test/java/org/springframework/jdbc/datasource/DataSourceUtilsTests.java +++ b/spring-jdbc/src/test/java/org/springframework/jdbc/datasource/DataSourceUtilsTests.java @@ -29,18 +29,17 @@ import static org.mockito.BDDMockito.when; import static org.mockito.Mockito.mock; /** + * Tests for {@link DataSourceUtils}. + * * @author Kevin Schoenfeld - * @see org.springframework.jdbc.datasource.DataSourceUtilsTests - * @since 21.06.2022 + * @author Stephane Nicoll */ - class DataSourceUtilsTests { @Test void testConnectionNotAcquiredExceptionIsPropagated() throws SQLException { - final DataSource dataSource = mock(DataSource.class); + DataSource dataSource = mock(DataSource.class); when(dataSource.getConnection()).thenReturn(null); - assertThatThrownBy(() -> DataSourceUtils.getConnection(dataSource)) .isInstanceOf(CannotGetJdbcConnectionException.class) .hasMessageStartingWith("Failed to obtain JDBC Connection") @@ -49,12 +48,14 @@ class DataSourceUtilsTests { @Test void testConnectionSQLExceptionIsPropagated() throws SQLException { - final DataSource dataSource = mock(DataSource.class); + DataSource dataSource = mock(DataSource.class); when(dataSource.getConnection()).thenThrow(new SQLException("my dummy exception")); - assertThatThrownBy(() -> DataSourceUtils.getConnection(dataSource)) .isInstanceOf(CannotGetJdbcConnectionException.class) .hasMessageStartingWith("Failed to obtain JDBC Connection") - .hasCauseInstanceOf(SQLException.class); + .cause().isInstanceOf(SQLException.class) + .hasMessage("my dummy exception"); } + } +