From: Gavin K. (JIRA) <no...@at...> - 2005-12-22 19:31:32
|
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-1312?page=comments#action_21427 ] Gavin King commented on HHH-1312: --------------------------------- Well, I don't want to get in an argument with Adrian, but in fact JDBC does not usually ask you to close ResultSets. I would be inclined to blame this on the JBoss JCA layer. http://java.sun.com/j2se/1.4.2/docs/api/java/sql/ResultSet.html#close() Well, anyway, we could be more "hygenic" here. > Unclosed ResultSet when using Identity > -------------------------------------- > > Key: HHH-1312 > URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-1312 > Project: Hibernate3 > Type: Bug > Components: core > Versions: 3.1 rc2, 3.1 rc3, 3.1 > Environment: JBoss 4.0.3SP1 > Hibernate 3.1rc2 > Java 1.5.0_06 > MSSQLServer 2000 > Reporter: Michael Samblanet > Priority: Minor > > > The code around AbstractEntityPersister.java line 1969 obtains a result set using GetGeneratedKeysHelper.getGeneratedKey > but the result set is never closed by this function nor the functions it calls. The issue was exposed by the > message below in JBoss 4.0.3 SP1. > This is an EJB3 application on JBoss using MSSQLServer 2000 and we are persisting an object with a primary key using an > identity data type. > A review of the Hibernate 3.1 source code seems to indicate it has the same issue. > 11:29:30,817 WARN [WrappedConnection] Closing a result set you left open! Please close it yourself. > java.lang.Throwable: STACKTRACE > at org.jboss.resource.adapter.jdbc.WrappedStatement.registerResultSet(WrappedStatement.java:572) > at org.jboss.resource.adapter.jdbc.WrappedStatement.getGeneratedKeys(WrappedStatement.java:501) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at org.hibernate.util.GetGeneratedKeysHelper.getGeneratedKey(GetGeneratedKeysHelper.java:59) > at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:1969) > at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2404) > at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:37) > at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:243) > at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:269) > at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:167) > at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:101) > at org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:131) > at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:87) > at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:38) > at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:590) > at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:568) > at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:130) > at org.jboss.ejb3.entity.InjectedEntityManager.persist(InjectedEntityManager.java:97) > <snip> -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |