mirror of
https://github.com/corda/corda.git
synced 2024-12-20 21:43:14 +00:00
99f835bb4a
* CORDA-3995 Redeliver external events in number of suspends differs When retrying a flow, only redeliver external events held in a flow's pending deduplication handlers if there is a difference in the `numberOfSuspends` on the `currentState`'s checkpoint or the checkpoint in the database. If the checkpoint committed, but the flow retried, then the external events would have been persisted to the database as part of the same transaction. Therefore there is no need to replay them, as they have already been processed as saved as part of the checkpoint. This change is only relevant when the checkpoint persists, but the flow still needs to retry after this occurs (within the same transition/event). * CORDA-3995 Redeliver external events in number of commits differs When retrying a flow, only redeliver external events held in a flow's pending deduplication handlers if there is a difference in the `numberOfCommits` on the `currentState`'s checkpoint or the checkpoint in the database. If the checkpoint committed, but the flow retried, then the external events would have been persisted to the database as part of the same transaction. Therefore there is no need to replay them, as they have already been processed as saved as part of the checkpoint. This change is only relevant when the checkpoint persists, but the flow still needs to retry after this occurs (within the same transition/event). * CORDA-3995 Redeliver external events if number of commits differs When retrying a flow, only redeliver external events held in a flow's pending deduplication handlers if there is a difference in the `currentState`'s `numberOfCommits` or the `numberOfCommits` the checkpoint has recorded in the database. If the checkpoint committed, but the flow retried, then the external events would have been persisted to the database as part of the same transaction. Therefore there is no need to replay them, as they have already been processed as saved as part of the checkpoint. This change is only relevant when the checkpoint persists, but the flow still needs to retry after this occurs (within the same transition/event). * Add @Suspendable to a test flow. I am surprised this worked at all. * Fix a few minor things based on review. Co-authored-by: Will Vigor <william.vigor@r3.com> |
||
---|---|---|
.. | ||
capsule | ||
djvm | ||
src | ||
build.gradle |