[hibernate-dev] New pull request for HHH-7265 (ConcurrentModificationException)

Steve Ebersole steve at hibernate.org
Tue May 1 11:58:13 EDT 2012


Currently session auto-closing is driven solely by 
Settings.isAutoCloseSessionEnabled(), which in turn comes from 
'hibernate.transaction.auto_close_session' setting.  The problem is 
that in cases where the session is "owned" (HEM and Envers are 2 such 
cases) the answer is not always as simple as an a priori boolean flag.  
That is the case Gail is trying to solve.  To be honest I have not yet 
looked at the pull request to answer your specifics.  But I will look 
at it and apply it prior to 4.1.3 tomorrow.


On Tue 01 May 2012 09:15:51 AM CDT, Scott Marlow wrote:
> Is this the safest way to fix?

Not sure what you mean by "safest" way to fix.


> 1. The patch is changing the serialization of Hibernate Sessions to
> include the session owner. Where is org.hibernate.SessionOwner? Is
> org.hibernate.SessionOwner always serializable? Could
> org.hibernate.SessionOwner reference anything that could be
> problematic for serialization?

If the person supplying the Session wishes it to be Serializable then 
yes.  That is the responsibility of the thing supplying the 
SessionOwner.  In most cases this is Hibernate code itself.  Then main 
use case being the Hibernate EntityManager as the SessionOwner.  And 
yes, the Hibernate EntityManagerImpl is Serializable, although perhaps 
only partially iiuc (AbstractEntityManagerImpl is Serializable;  
EntityManagerImpl extends AbstractEntityManagerImpl but then adds extra 
state fields).


> 2. AbstractSessionImpl doesn't have a serialVersionUID but with this
> change to the Session serialization, I'm wondering if it should.

serialVersionUID is only ever useful in terms of attempts to ser/deser 
sessions using different versions of Hibernate.  That is expressly not 
supported.


As for the rest of your questions, I have not looked at the code so I 
cannot answer specifically.

--
steve at hibernate.org
http://hibernate.org


More information about the hibernate-dev mailing list