|
From: <hib...@li...> - 2006-08-02 02:05:19
|
Author: scottmarlownovell
Date: 2006-08-01 22:05:16 -0400 (Tue, 01 Aug 2006)
New Revision: 10188
Modified:
branches/Branch_3_2/Hibernate3/src/org/hibernate/persister/entity/AbstractEntityPersister.java
Log:
Applied patch for HHH-1750 and verified that "Out of cursors" error is
resolved.
Modified: branches/Branch_3_2/Hibernate3/src/org/hibernate/persister/entity/AbstractEntityPersister.java
===================================================================
--- branches/Branch_3_2/Hibernate3/src/org/hibernate/persister/entity/AbstractEntityPersister.java 2006-08-02 00:42:25 UTC (rev 10187)
+++ branches/Branch_3_2/Hibernate3/src/org/hibernate/persister/entity/AbstractEntityPersister.java 2006-08-02 02:05:16 UTC (rev 10188)
@@ -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(
|