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

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
hibernate-devel mailing list
hibernate-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hibernate-devel

Reply via email to