From a393cbd7f53884175de575e27ecaeeb1249f5811 Mon Sep 17 00:00:00 2001 From: Guillaume Smet Date: Mon, 9 Nov 2020 15:15:37 +0100 Subject: [PATCH] HHH-14316 Avoid accessing state in DriverManagerConnectionProviderImpl if null --- .../DriverManagerConnectionProviderImpl.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl.java b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl.java index b108bbb5a776..3cff4caa992a 100644 --- a/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/DriverManagerConnectionProviderImpl.java @@ -168,11 +168,17 @@ private static Driver loadDriverIfPossible(String driverClassName, ServiceRegist @Override public Connection getConnection() throws SQLException { + if ( state == null ) { + throw new IllegalStateException( "Cannot get a connection as the driver manager is not properly initialized" ); + } return state.getConnection(); } @Override public void closeConnection(Connection conn) throws SQLException { + if ( state == null ) { + throw new IllegalStateException( "Cannot close a connection as the driver manager is not properly initialized" ); + } state.closeConnection( conn ); } @@ -204,13 +210,17 @@ public T unwrap(Class unwrapType) { @Override public void stop() { - state.stop(); + if ( state != null ) { + state.stop(); + } } //CHECKSTYLE:START_ALLOW_FINALIZER @Override protected void finalize() throws Throwable { - state.stop(); + if ( state != null ) { + state.stop(); + } super.finalize(); } //CHECKSTYLE:END_ALLOW_FINALIZER