Fixed
Details
Assignee
UnassignedUnassignedReporter
Filip ZawadaFilip ZawadaComponents
Fix versions
Priority
MinorWho's Looking?
Open Who's Looking?
Details
Details
Assignee
Unassigned
UnassignedReporter
Filip Zawada
Filip ZawadaComponents
Fix versions
Priority
Who's Looking?
Open Who's Looking?
Created September 6, 2010 at 2:47 PM
Updated September 4, 2017 at 1:28 PM
Resolved September 18, 2010 at 5:40 AM
Executing following code:
void IPostUpdateEventListener.OnPostUpdate(PostUpdateEvent @event)
{
/*
Getting left and right ommited
*/
@event.Session.CreateSQLQuery("update categories c set isbranchactive = 1 where c.lft >= :lft and c.rgt <= :rgt")
.SetInt64("lft", left)
.SetInt64("rgt", right)
.ExecuteUpdate();
}
when commiting a transaction results with:
[InvalidOperationException: Collection was modified; enumeration operation may not execute.]
System.ThrowHelper.ThrowInvalidOperationException(ExceptionResourceresource) +56
System.Collections.Generic.Enumerator.MoveNextRare() +58
System.Collections.Generic.Enumerator.MoveNext() +93
NHibernate.Engine.ActionQueue.ExecuteActions(IList list) +149
NHibernate.Engine.ActionQueue.ExecuteActions() +32
NHibernate.Event.Default.AbstractFlushingEventListener.PerformExecutions(IEventSourcesession) +253
NHibernate.Event.Default.DefaultFlushEventListener.OnFlush(FlushEventevent) +97
NHibernate.Impl.SessionImpl.Flush() +275
NHibernate.Transaction.AdoTransaction.Commit() +236
I looked into the ExecuteActions(...) and replaced foreach enumeration
with a regular for loop.
Everything seems to work just fine. Tests are passing (NH
2.1.1, 2.1.2 and 3 [current trunk rev 5180]).