diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java index 98263bac6..dcacc0f2c 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnection.java @@ -155,7 +155,7 @@ public class SQLServerConnection implements ISQLServerConnection, java.io.Serial SharedTimer getSharedTimer() throws SQLServerException { if (state == State.Closed) { SQLServerException.makeFromDriverError(null, null, SQLServerException.getErrString("R_connectionIsClosed"), - null, false); + SQLServerException.EXCEPTION_XOPEN_CONNECTION_FAILURE, false); } if (null == sharedTimer) { this.sharedTimer = SharedTimer.getTimer(); @@ -1167,7 +1167,7 @@ public String toString() { void checkClosed() throws SQLServerException { if (isSessionUnAvailable()) { SQLServerException.makeFromDriverError(null, null, SQLServerException.getErrString("R_connectionIsClosed"), - null, false); + SQLServerException.EXCEPTION_XOPEN_CONNECTION_FAILURE, false); } } diff --git a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnectionPoolProxy.java b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnectionPoolProxy.java index 9aa915967..82bf388b7 100644 --- a/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnectionPoolProxy.java +++ b/src/main/java/com/microsoft/sqlserver/jdbc/SQLServerConnectionPoolProxy.java @@ -72,7 +72,7 @@ SQLServerConnection getWrappedConnection() { void checkClosed() throws SQLServerException { if (!bIsOpen) { SQLServerException.makeFromDriverError(null, null, SQLServerException.getErrString("R_connectionIsClosed"), - null, false); + SQLServerException.EXCEPTION_XOPEN_CONNECTION_FAILURE, false); } } diff --git a/src/test/java/com/microsoft/sqlserver/jdbc/SQLServerConnectionTest.java b/src/test/java/com/microsoft/sqlserver/jdbc/SQLServerConnectionTest.java index 042d72b42..a615567b7 100644 --- a/src/test/java/com/microsoft/sqlserver/jdbc/SQLServerConnectionTest.java +++ b/src/test/java/com/microsoft/sqlserver/jdbc/SQLServerConnectionTest.java @@ -425,6 +425,7 @@ public void testClosedConnection() throws SQLException { } catch (SQLServerException e) { assertEquals(e.getMessage(), TestResource.getResource("R_connectionIsClosed"), TestResource.getResource("R_wrongExceptionMessage")); + assertEquals("08S01", e.getSQLState(), TestResource.getResource("R_wrongSqlState")); } try (Connection conn = getConnection()) { conn.close(); @@ -433,6 +434,7 @@ public void testClosedConnection() throws SQLException { } catch (SQLServerException e) { assertEquals(e.getMessage(), TestResource.getResource("R_connectionIsClosed"), TestResource.getResource("R_wrongExceptionMessage")); + assertEquals("08S01", e.getSQLState(), TestResource.getResource("R_wrongSqlState")); } } @@ -567,6 +569,7 @@ public void testClientConnectionId() throws Exception { } catch (SQLException e) { assertEquals(e.getMessage(), TestResource.getResource("R_connectionIsClosed"), TestResource.getResource("R_wrongExceptionMessage")); + assertEquals("08S01", e.getSQLState(), TestResource.getResource("R_wrongSqlState")); } } diff --git a/src/test/java/com/microsoft/sqlserver/jdbc/TestResource.java b/src/test/java/com/microsoft/sqlserver/jdbc/TestResource.java index 3eb6ddaaa..15c7311d6 100644 --- a/src/test/java/com/microsoft/sqlserver/jdbc/TestResource.java +++ b/src/test/java/com/microsoft/sqlserver/jdbc/TestResource.java @@ -61,6 +61,7 @@ protected Object[][] getContents() { {"R_connectionReset", "Connection reset"}, {"R_unknownException", "Unknown exception"}, {"R_deadConnection", "Dead connection should be invalid"}, {"R_wrongExceptionMessage", "Wrong exception message"}, + {"R_wrongSqlState", "Wrong sql state"}, {"R_parameterNotDefined", "Parameter {0} was not defined"}, {"R_unexpectedExceptionContent", "Unexpected content in exception message"}, {"R_connectionClosed", "The connection has been closed"},