corda/node
Dan Newton bd9b50bf7c ENT-6376 Don't hospitalize session end in ReceiveFinalityFlow (#4325)
Do not keep a flow in for observation if it receives an unexpected
session end message while in `ReceiveFinalityFlow` and
`ReceiveTransactionFlow` (due to being called by the former).

This is done by checking the message of the `UnexpectedFlowEndException`
that is thrown when a session end message instead of a data message and
if the stacktrace has `ReceiveTransactionFlow` at the top, after
removing statemachine stack frames.

Checking the stacktrace for `ReceiveTransactionFlow` is important
because the unexpected session end session message is only ok if a
transaction has not already been received. For example, if
`ResolveTransactionsFlow` is in the stack, then this indicates failure
when receiving transaction dependencies on a transaction that should be
recorded.

Also added a test that highlights that the `UnexpectedFlowEndException`
caused by the session end message can be caught, therefore users can
determine their own behaviour if desired.
2022-01-13 11:02:46 +00:00
..
capsule Refactored the previous bug fix to minimize duplication by reusing an existing function. 2020-08-06 11:15:19 +01:00
djvm ENT-6357: Deserialize LedgerTransaction elements for each Contract.verify(). (#6962) 2021-11-10 16:38:40 +00:00
src ENT-6376 Don't hospitalize session end in ReceiveFinalityFlow (#4325) 2022-01-13 11:02:46 +00:00
build.gradle ENT-6378 Migrate corda-shell to external repo (#7005) 2022-01-12 11:54:18 +00:00