Skip to content

Commit a2f3fba

Browse files
NH-4077 - fix for auto-flush triggered from flush events.
1 parent 2bbb6d8 commit a2f3fba

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

src/NHibernate/Async/Impl/SessionImpl.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -961,10 +961,18 @@ public override async Task<object> InternalLoadAsync(string entityName, object i
961961
{
962962
throw new HibernateException("Flush during cascade is dangerous");
963963
}
964-
IFlushEventListener[] flushEventListener = listeners.FlushEventListeners;
965-
for (int i = 0; i < flushEventListener.Length; i++)
964+
dontFlushFromFind++;
965+
try
966+
{
967+
IFlushEventListener[] flushEventListener = listeners.FlushEventListeners;
968+
for (int i = 0; i < flushEventListener.Length; i++)
969+
{
970+
await (flushEventListener[i].OnFlushAsync(new FlushEvent(this), cancellationToken)).ConfigureAwait(false);
971+
}
972+
}
973+
finally
966974
{
967-
await (flushEventListener[i].OnFlushAsync(new FlushEvent(this), cancellationToken)).ConfigureAwait(false);
975+
dontFlushFromFind--;
968976
}
969977
}
970978
}

src/NHibernate/Impl/SessionImpl.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1360,10 +1360,18 @@ public override void Flush()
13601360
{
13611361
throw new HibernateException("Flush during cascade is dangerous");
13621362
}
1363-
IFlushEventListener[] flushEventListener = listeners.FlushEventListeners;
1364-
for (int i = 0; i < flushEventListener.Length; i++)
1363+
dontFlushFromFind++;
1364+
try
1365+
{
1366+
IFlushEventListener[] flushEventListener = listeners.FlushEventListeners;
1367+
for (int i = 0; i < flushEventListener.Length; i++)
1368+
{
1369+
flushEventListener[i].OnFlush(new FlushEvent(this));
1370+
}
1371+
}
1372+
finally
13651373
{
1366-
flushEventListener[i].OnFlush(new FlushEvent(this));
1374+
dontFlushFromFind--;
13671375
}
13681376
}
13691377
}

0 commit comments

Comments
 (0)