|
From: <ja...@he...> - 2006-07-20 13:34:57
|
Hi all,
I think org.hibernate.engine.transaction.Isolater is not handling connections properly:
The method JdbcDelegate is currently implemented as follows:
public static class JdbcDelegate implements Delegate {
...
public void delegateWork(IsolatedWork work) throws HibernateException {
Connection connection = null;
try {
connection = session.getBatcher().openConnection();
...
}
...
}
finally {
if ( wasAutoCommit ) {
try {
connection.setAutoCommit( true );
}
catch( Throwable ignore ) {
log.trace( "was unable to reset connection back to auto-commit" );
}
session.getBatcher().closeConnection( connection );
}
}
}
}
This means that the connection will only be closed if wasAutoCommit==true but I think it should be closed in any circumstance:
public static class JdbcDelegate implements Delegate {
...
public void delegateWork(IsolatedWork work) throws HibernateException {
Connection connection = null;
try {
connection = session.getBatcher().openConnection();
...
}
...
}
finally {
if ( wasAutoCommit ) {
try {
connection.setAutoCommit( true );
}
catch( Throwable ignore ) {
log.trace( "was unable to reset connection back to auto-commit" );
}
}
session.getBatcher().closeConnection( connection );
}
}
}
What do you think ?
--
"Feel free" – 10 GB Mailbox, 100 FreeSMS/Monat ...
Jetzt GMX TopMail testen: http://www.gmx.net/de/go/topmail
|