Tidy up usages of TransactionResolutionException

Description

There are some uses of TransactionResolutionException that can occur outside the transaction resolution process that happens in ResolveTransactionsFlow. For example, in SignedTransaction.kt, this exception is thrown if the network parameters are unknown to the node when trying to verify a transaction (resolveAndCheckNetworkParameters). TransactionResolutionException is described by its documentation as only being thrown when a failure occurs while trying to receive something from a remote peer. This story covers tidying this up as appropriate. Some suggestions:

  • The KDoc for TransactionResolutionException could be changed.

  • The exception type thrown in cases where the code could be exercised outside of transaction resolution could be changed. The main issue with this is that the exception is part of the public API, and so someone catching it in these circumstances would be broken by this change. This change could be gated behind a targetVersionFlag. Another possibility is to subclass TransactionResolutionException to better describe what has gone wrong.

CVSS Vector

None

Status

Assignee

Unassigned

Reporter

James Higgs

Labels

None

CVSS Score

None

Feature Team

Corda Core

Target Version/s

None

Ported to...

None

Affects versions

Corda 4.0
Corda Enterprise 4

Priority

Medium