[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-2455) "Could not close a JDBC result set" output very often

Dirk Feufel (JIRA) noreply at atlassian.com
Mon Jan 9 02:44:10 EST 2012


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-2455?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=45014#comment-45014 ] 

Dirk Feufel commented on HHH-2455:
----------------------------------

The warning output should no longer happen in 4.0 since the DbTimestamp class now closes the PreparedStatement directly via close and does not use the Batcher methods which no longer exists. But the DbTimestamp class still does not call close on the ResultSet in 4.0. So the problem reported by Florian Probst still exists. So similar cleanup code for the ResultSet should be applied in 4.0 as well. 

> "Could not close a JDBC result set" output very often
> -----------------------------------------------------
>
>                 Key: HHH-2455
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2455
>             Project: Hibernate Core
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 3.2.2
>            Reporter: Dirk Feufel
>            Priority: Minor
>         Attachments: patch-for-3.6.4.patch
>
>   Original Estimate: 1h
>  Remaining Estimate: 1h
>
> If you call this type of code (like the DbTimestampType class does), the AbstractBatcher outputs a warning "Could not close a JDBC result set". 
> The problem should be that closing the prepared statement internally also closes the associated result sets and the AbstractBatcher still has a reference to this result set.  
> One possible solution might be to provide an additional method 
> 	public void closeStatement(PreparedStatement ps, ResultSet rs); 
> (as already present for closeQueryStatement) in the AbstractBatcher allowing to close both in the right order. 
> PreparedStatement ps = null;
> try {
> 	ps = session.getBatcher().prepareStatement( timestampSelectString );
> 	ResultSet rs = session.getBatcher().getResultSet( ps );
> 	....
> } finally {
> 	if ( ps != null ) {
> 		session.getBatcher().closeStatement( ps );
> 	}
> }

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the hibernate-issues mailing list