[hibernate-commits] Hibernate SVN: r14999 - in core/branches/Branch_3_2/src/org/hibernate: jdbc and 1 other directory.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Thu Jul 31 11:10:43 EDT 2008


Author: steve.ebersole at jboss.com
Date: 2008-07-31 11:10:43 -0400 (Thu, 31 Jul 2008)
New Revision: 14999

Modified:
   core/branches/Branch_3_2/src/org/hibernate/engine/transaction/Isolater.java
   core/branches/Branch_3_2/src/org/hibernate/jdbc/AbstractBatcher.java
Log:
HHH-2604 : Isolator.JdbcDelegate connection releasing

Modified: core/branches/Branch_3_2/src/org/hibernate/engine/transaction/Isolater.java
===================================================================
--- core/branches/Branch_3_2/src/org/hibernate/engine/transaction/Isolater.java	2008-07-31 15:10:19 UTC (rev 14998)
+++ core/branches/Branch_3_2/src/org/hibernate/engine/transaction/Isolater.java	2008-07-31 15:10:43 UTC (rev 14999)
@@ -215,15 +215,17 @@
 				}
 			}
 			finally {
-				if ( transacted && wasAutoCommit ) {
-					try {
-						connection.setAutoCommit( true );
+				if ( connection != null ) {
+					if ( transacted && wasAutoCommit ) {
+						try {
+							connection.setAutoCommit( true );
+						}
+						catch( Throwable ignore ) {
+							log.trace( "was unable to reset connection back to auto-commit" );
+						}
 					}
-					catch( Throwable ignore ) {
-						log.trace( "was unable to reset connection back to auto-commit" );
-					}
+					session.getBatcher().closeConnection( connection );
 				}
-				session.getBatcher().closeConnection( connection );
 			}
 		}
 	}

Modified: core/branches/Branch_3_2/src/org/hibernate/jdbc/AbstractBatcher.java
===================================================================
--- core/branches/Branch_3_2/src/org/hibernate/jdbc/AbstractBatcher.java	2008-07-31 15:10:19 UTC (rev 14998)
+++ core/branches/Branch_3_2/src/org/hibernate/jdbc/AbstractBatcher.java	2008-07-31 15:10:43 UTC (rev 14999)
@@ -590,26 +590,24 @@
 	}
 
 	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" );
 		}
 	}
 




More information about the hibernate-commits mailing list