diff --git a/src/org/hibernate/engine/transaction/Isolater.java b/src/org/hibernate/engine/transaction/Isolater.java index a9e80fd05d..ecacd8efa9 100644 --- a/src/org/hibernate/engine/transaction/Isolater.java +++ b/src/org/hibernate/engine/transaction/Isolater.java @@ -215,15 +215,17 @@ else if ( t instanceof SQLException ) { } } finally { - if ( transacted && wasAutoCommit ) { - try { - connection.setAutoCommit( true ); - } - catch( Throwable ignore ) { - log.trace( "was unable to reset connection back to auto-commit" ); + if ( connection != null ) { + if ( transacted && wasAutoCommit ) { + try { + connection.setAutoCommit( true ); + } + catch( Throwable ignore ) { + log.trace( "was unable to reset connection back to auto-commit" ); + } } + session.getBatcher().closeConnection( connection ); } - session.getBatcher().closeConnection( connection ); } } } diff --git a/src/org/hibernate/jdbc/AbstractBatcher.java b/src/org/hibernate/jdbc/AbstractBatcher.java index 6a5ff17ce3..a9da4abcd5 100644 --- a/src/org/hibernate/jdbc/AbstractBatcher.java +++ b/src/org/hibernate/jdbc/AbstractBatcher.java @@ -590,26 +590,24 @@ public Connection openConnection() throws HibernateException { } public void closeConnection(Connection conn) throws HibernateException { + if ( conn == null ) { + log.debug( "found null connection on AbstractBatcher#closeConnection" ); + // EARLY EXIT!!!! + return; + } + if ( log.isDebugEnabled() ) { - log.debug( - "closing JDBC connection" + - preparedStatementCountsToString() + - resultSetCountsToString() - ); + log.debug( "closing JDBC connection" + preparedStatementCountsToString() + resultSetCountsToString() ); } try { if ( !conn.isClosed() ) { - JDBCExceptionReporter.logAndClearWarnings(conn); + JDBCExceptionReporter.logAndClearWarnings( conn ); } - factory.getConnectionProvider().closeConnection(conn); + factory.getConnectionProvider().closeConnection( conn ); } - catch (SQLException sqle) { - throw JDBCExceptionHelper.convert( - factory.getSQLExceptionConverter(), - sqle, - "Cannot close connection" - ); + catch ( SQLException sqle ) { + throw JDBCExceptionHelper.convert( factory.getSQLExceptionConverter(), sqle, "Cannot close connection" ); } }