From: NHibernate J. <nh...@gm...> - 2009-06-18 14:20:02
|
[ http://nhjira.koah.net/browse/NH-1845?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18251#action_18251 ] David Cowan commented on NH-1845: --------------------------------- The link to the forum covers all those points in the howto. I can copy and paste them into this bug but I assumed the link was sufficient. Is there something else missing in that forum post that I missed? > StatefulPersistenceContext.RemoveEntity KeyNotFoundException on Evict > --------------------------------------------------------------------- > > Key: NH-1845 > URL: http://nhjira.koah.net/browse/NH-1845 > Project: NHibernate > Issue Type: Bug > Components: Core > Affects Versions: 2.0.1.GA > Reporter: David Cowan > Priority: Critical > > In entities with parent/child relationships calling Evict can cause KeyNotFoundException's in StatefulPersistenceContext.RemoveEntity > Stack trace is below. Also see this forum post > https://forum.hibernate.org/viewtopic.php?f=25&t=993443&view=previous > System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary. > at System.ThrowHelper.ThrowKeyNotFoundException() > at System.Collections.Generic.Dictionary`2.get_Item(TKey key) > at NHibernate.Engine.StatefulPersistenceContext.RemoveEntity(EntityKey key) > at NHibernate.Event.Default.DefaultEvictEventListener.OnEvict(EvictEvent event) > at NHibernate.Impl.SessionImpl.FireEvict(EvictEvent evictEvent) > at NHibernate.Impl.SessionImpl.Evict(Object obj) > at NHibernate.Engine.CascadingAction.EvictCascadingAction.Cascade(IEventSource session, Object child, String entityName, Object anything, Boolean isCascadeDeleteEnabled) > at NHibernate.Engine.Cascade.CascadeToOne(Object child, IType type, CascadeStyle style, Object anything, Boolean isCascadeDeleteEnabled) > at NHibernate.Engine.Cascade.CascadeAssociation(Object child, IType type, CascadeStyle style, Object anything, Boolean isCascadeDeleteEnabled) > at NHibernate.Engine.Cascade.CascadeProperty(Object child, IType type, CascadeStyle style, Object anything, Boolean isCascadeDeleteEnabled) > at NHibernate.Engine.Cascade.CascadeOn(IEntityPersister persister, Object parent, Object anything) > at NHibernate.Event.Default.DefaultEvictEventListener.DoEvict(Object obj, EntityKey key, IEntityPersister persister, IEventSource session) > at NHibernate.Event.Default.DefaultEvictEventListener.OnEvict(EvictEvent event) > at NHibernate.Impl.SessionImpl.FireEvict(EvictEvent evictEvent) > at NHibernate.Impl.SessionImpl.Evict(Object obj) > at NHibernate.Engine.CascadingAction.EvictCascadingAction.Cascade(IEventSource session, Object child, String entityName, Object anything, Boolean isCascadeDeleteEnabled) > at NHibernate.Engine.Cascade.CascadeToOne(Object child, IType type, CascadeStyle style, Object anything, Boolean isCascadeDeleteEnabled) > at NHibernate.Engine.Cascade.CascadeAssociation(Object child, IType type, CascadeStyle style, Object anything, Boolean isCascadeDeleteEnabled) > at NHibernate.Engine.Cascade.CascadeProperty(Object child, IType type, CascadeStyle style, Object anything, Boolean isCascadeDeleteEnabled) > at NHibernate.Engine.Cascade.CascadeOn(IEntityPersister persister, Object parent, Object anything) > at NHibernate.Event.Default.DefaultEvictEventListener.DoEvict(Object obj, EntityKey key, IEntityPersister persister, IEventSource session) > at NHibernate.Event.Default.DefaultEvictEventListener.OnEvict(EvictEvent event) > at NHibernate.Impl.SessionImpl.FireEvict(EvictEvent evictEvent) > at NHibernate.Impl.SessionImpl.Evict(Object obj) -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://nhjira.koah.net/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira |