1
0
mirror of synced 2024-12-22 17:23:07 +01:00

Merge tag '2.0.2' into develop

2.0.2
This commit is contained in:
Hans Mulder 2020-01-20 13:07:21 +01:00
commit 01b3aebfb8
2 changed files with 9 additions and 2 deletions

View File

@ -36,9 +36,14 @@ namespace Tapeti.Flow.Default
await FlowStateLock.DeleteFlowState();
}
public bool IsStoredOrDeleted()
{
return storeCalled || deleteCalled;
}
public void EnsureStoreOrDeleteIsCalled()
{
if (!storeCalled && !deleteCalled)
if (!IsStoredOrDeleted())
throw new InvalidProgramException("Neither Store nor Delete are called for the state of the current flow. FlowID = " + FlowStateLock?.FlowID);
}

View File

@ -57,7 +57,9 @@ namespace Tapeti.Flow.Default
if (flowContext?.FlowStateLock != null)
{
if (consumeResult == ConsumeResult.Error)
if (!flowContext.IsStoredOrDeleted())
// The exception strategy can set the consume result to Success. Instead, check if the yield point
// was handled. The flow provider ensures we only end up here in case of an exception.
await flowContext.FlowStateLock.DeleteFlowState();
flowContext.FlowStateLock.Dispose();