From: <hib...@li...> - 2006-08-02 02:06:03
|
Author: scottmarlownovell Date: 2006-08-01 22:06:00 -0400 (Tue, 01 Aug 2006) New Revision: 10189 Modified: trunk/Hibernate3/src/org/hibernate/persister/entity/AbstractEntityPersister.java Log: Applied patch for HHH-1750 and verified that "Out of cursors" error is resolved. Modified: trunk/Hibernate3/src/org/hibernate/persister/entity/AbstractEntityPersister.java =================================================================== --- trunk/Hibernate3/src/org/hibernate/persister/entity/AbstractEntityPersister.java 2006-08-02 02:05:16 UTC (rev 10188) +++ trunk/Hibernate3/src/org/hibernate/persister/entity/AbstractEntityPersister.java 2006-08-02 02:06:00 UTC (rev 10189) @@ -3543,23 +3543,32 @@ session.getBatcher().executeBatch(); //force immediate execution of the insert - PreparedStatement ps = null; try { - ps = session.getBatcher().prepareSelectStatement( selectionSQL ); - getIdentifierType().nullSafeSet( ps, id, 1, session ); - ResultSet rs = session.getBatcher().getResultSet( ps ); - if ( !rs.next() ) { - throw new HibernateException( - "Unable to locate row for retrieval of generated properties: " + - MessageHelper.infoString( this, id, getFactory() ) - ); - } - for ( int i = 0; i < getPropertySpan(); i++ ) { - if ( included[i] ) { - state[i] = getPropertyTypes()[i].hydrate( rs, getPropertyAliases( "", i ), session, entity ); - setPropertyValue( entity, i, state[i], session.getEntityMode() ); + PreparedStatement ps = session.getBatcher().prepareSelectStatement( selectionSQL ); + try { + getIdentifierType().nullSafeSet( ps, id, 1, session ); + ResultSet rs = session.getBatcher().getResultSet( ps ); + try { + if ( !rs.next() ) { + throw new HibernateException( + "Unable to locate row for retrieval of generated properties: " + + MessageHelper.infoString( this, id, getFactory() ) + ); + } + for ( int i = 0; i < getPropertySpan(); i++ ) { + if ( included[i] ) { + state[i] = getPropertyTypes()[i].hydrate( rs, getPropertyAliases( "", i ), session, entity ); + setPropertyValue( entity, i, state[i], session.getEntityMode() ); + } + } } + finally { + rs.close(); + } } + finally { + session.getBatcher().closeStatement(ps); + } } catch( SQLException sqle ) { JDBCExceptionHelper.convert( |