[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-443) AssertionFailure occurs with listeners on models with many-to-many collection.
Adrian Pillinger (JIRA)
noreply at atlassian.com
Wed Dec 19 10:02:56 EST 2007
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-443?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_29174 ]
Adrian Pillinger commented on HHH-443:
--------------------------------------
We use a new session in the listener and still encounter this bug.
> AssertionFailure occurs with listeners on models with many-to-many collection.
> -------------------------------------------------------------------------------
>
> Key: HHH-443
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-443
> Project: Hibernate3
> Issue Type: Bug
> Components: core
> Affects Versions: 3.0.2
> Environment: Hibernate version 3.0.2
> Oracle9i
> Reporter: Tom Kucharski
>
> The problem occurs when insert or update listener is created on hibernate session on model with many-to-many collection and listener is making some queries with this model.
> The listener is needed for checking data integrity , so I need to make some select clauses within this listener.
> That is my code from PreInsertEventListener.onPreInsert() method (some lines were removed for clearance) :
> //I set this on FlushMode.NEVER because StackOverflowError is thrown
> event.getSession().setFlushMode(FlushMode.NEVER);
> // Function below makes database query using criteria API
> String o = listener.validate(event.getEntity(),event.getSession());
> if (o != null) {
> // I don't know if this is correct, but why not?? I don't catch this exception in my code and I have auto_close_session and auto_flush_session on true
> throw new ConstraintViolationException(o,null,null);
> }
> // set to default settings
> event.getSession().setFlushMode(FlushMode.AUTO);
> That's exception from my WebLogic 8.1 server
> <2005-05-05 18:05:15 CEST> <Error> <org.hibernate.AssertionFailure> <000000> <an assertion failure occured (this may indicate a bug in Hibernate, but is more likely due to unsafe use of the session)
> org.hibernate.AssertionFailure: collection was not processed by flush()
> at org.hibernate.engine.CollectionEntry.postFlush(CollectionEntry.java:144)
> at org.hibernate.event.def.AbstractFlushingEventListener.postFlush(AbstractFlushingEventListener.java:305)
> at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:28)
> at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:678)
> at pl.softbank.cepik.modris.common.client.util.DefaultModrisClient.updateObject(DefaultModrisClient.java:196)
> at pl.softbank.cepik.modris.dict.common.client.CommonDictModrisClient.insert(CommonDictModrisClient.java:71)
--
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
More information about the hibernate-issues
mailing list