diff --git a/core/src/main/kotlin/net/corda/core/crypto/internal/ProviderMap.kt b/core/src/main/kotlin/net/corda/core/crypto/internal/ProviderMap.kt index 90d3b67e9c..a46227bacd 100644 --- a/core/src/main/kotlin/net/corda/core/crypto/internal/ProviderMap.kt +++ b/core/src/main/kotlin/net/corda/core/crypto/internal/ProviderMap.kt @@ -14,6 +14,7 @@ import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo import org.bouncycastle.jcajce.provider.util.AsymmetricKeyInfoConverter import org.bouncycastle.jce.provider.BouncyCastleProvider import org.bouncycastle.pqc.jcajce.provider.BouncyCastlePQCProvider +import java.security.SecureRandom import java.security.Security internal val cordaSecurityProvider = CordaSecurityProvider().also { @@ -46,4 +47,4 @@ internal val bouncyCastlePQCProvider = BouncyCastlePQCProvider().apply { internal val providerMap = listOf(cordaBouncyCastleProvider, cordaSecurityProvider, bouncyCastlePQCProvider).map { it.name to it }.toMap() @DeleteForDJVM -internal fun platformSecureRandomFactory() = platformSecureRandom // To minimise diff of CryptoUtils against open-source. +internal fun platformSecureRandomFactory(): SecureRandom = platformSecureRandom // To minimise diff of CryptoUtils against open-source. \ No newline at end of file diff --git a/core/src/main/kotlin/net/corda/core/messaging/CordaRPCOps.kt b/core/src/main/kotlin/net/corda/core/messaging/CordaRPCOps.kt index 5716f2cb53..1bb68fb0d5 100644 --- a/core/src/main/kotlin/net/corda/core/messaging/CordaRPCOps.kt +++ b/core/src/main/kotlin/net/corda/core/messaging/CordaRPCOps.kt @@ -42,7 +42,8 @@ data class StateMachineInfo @JvmOverloads constructor( * An object representing information about the initiator of the flow. Note that this field is * superseded by the [invocationContext] property, which has more detail. */ - @Deprecated("There is more info available using 'invocationContext'") val initiator: FlowInitiator, + @Deprecated("There is more info available using 'invocationContext'") + val initiator: FlowInitiator, /** A [DataFeed] of the current progress step as a human readable string, and updates to that string. */ val progressTrackerStepAndUpdates: DataFeed?, /** An [InvocationContext] describing why and by whom the flow was started. */ diff --git a/core/src/main/kotlin/net/corda/core/node/services/IdentityService.kt b/core/src/main/kotlin/net/corda/core/node/services/IdentityService.kt index 91c714b51f..b8f2bc7757 100644 --- a/core/src/main/kotlin/net/corda/core/node/services/IdentityService.kt +++ b/core/src/main/kotlin/net/corda/core/node/services/IdentityService.kt @@ -140,4 +140,4 @@ interface IdentityService { fun partiesFromName(query: String, exactMatch: Boolean): Set } -class UnknownAnonymousPartyException(msg: String) : CordaException(msg) +class UnknownAnonymousPartyException(message: String) : CordaException(message) diff --git a/core/src/main/kotlin/net/corda/core/utilities/ByteArrays.kt b/core/src/main/kotlin/net/corda/core/utilities/ByteArrays.kt index b2868a1caf..57a3f090b0 100644 --- a/core/src/main/kotlin/net/corda/core/utilities/ByteArrays.kt +++ b/core/src/main/kotlin/net/corda/core/utilities/ByteArrays.kt @@ -36,7 +36,7 @@ sealed class ByteSequence(private val _bytes: ByteArray, val offset: Int, val si * Create a sub-sequence of this sequence. A copy of the underlying array may be made, if a subclass overrides * [bytes] to do so, as [OpaqueBytes] does. * - * @param offset The offset within this sequence to start the new sequence. Note: not the offset within the backing array. + * @param offset The offset within this sequence to start the new sequence. Note: not the offset within the backing array. * @param size The size of the intended sub sequence. */ @Suppress("MemberVisibilityCanBePrivate") diff --git a/docs/source/example-code/src/test/kotlin/net/corda/docs/CustomVaultQueryTest.kt b/docs/source/example-code/src/test/kotlin/net/corda/docs/CustomVaultQueryTest.kt index 53e92a35c5..d94f374af2 100644 --- a/docs/source/example-code/src/test/kotlin/net/corda/docs/CustomVaultQueryTest.kt +++ b/docs/source/example-code/src/test/kotlin/net/corda/docs/CustomVaultQueryTest.kt @@ -4,20 +4,11 @@ import net.corda.core.contracts.Amount import net.corda.core.contracts.ContractState import net.corda.core.identity.Party import net.corda.core.node.services.queryBy -import net.corda.core.node.services.vault.DEFAULT_PAGE_NUM -import net.corda.core.node.services.vault.DEFAULT_PAGE_SIZE -import net.corda.core.node.services.vault.PageSpecification -import net.corda.core.node.services.vault.QueryCriteria -import net.corda.core.node.services.vault.builder +import net.corda.core.node.services.vault.* import net.corda.core.utilities.OpaqueBytes import net.corda.core.utilities.getOrThrow import net.corda.docs.java.tutorial.helloworld.IOUFlow -import net.corda.finance.CHF -import net.corda.finance.DOLLARS -import net.corda.finance.GBP -import net.corda.finance.POUNDS -import net.corda.finance.SWISS_FRANCS -import net.corda.finance.USD +import net.corda.finance.* import net.corda.finance.contracts.getCashBalances import net.corda.finance.flows.CashIssueFlow import net.corda.node.services.vault.VaultSchemaV1 @@ -112,4 +103,4 @@ class CustomVaultQueryTest { return Pair(balancesNodesA, balancesNodesB) } -} \ No newline at end of file +} diff --git a/finance/src/test/kotlin/net/corda/finance/flows/CashIssueFlowTests.kt b/finance/src/test/kotlin/net/corda/finance/flows/CashIssueFlowTests.kt index 9c7ab47a6c..83ab2b4a28 100644 --- a/finance/src/test/kotlin/net/corda/finance/flows/CashIssueFlowTests.kt +++ b/finance/src/test/kotlin/net/corda/finance/flows/CashIssueFlowTests.kt @@ -26,7 +26,7 @@ class CashIssueFlowTests { fun start() { mockNet = MockNetwork( servicePeerAllocationStrategy = RoundRobin(), - cordappPackages = listOf("net.corda.finance.contracts.asset", "net.corda.finance.schemas")) + cordappPackages = listOf("net.corda.finance.contracts", "net.corda.finance.schemas")) bankOfCordaNode = mockNet.createPartyNode(BOC_NAME) bankOfCorda = bankOfCordaNode.info.identityFromX500Name(BOC_NAME) notary = mockNet.defaultNotaryIdentity diff --git a/node/src/integration-test/kotlin/net/corda/node/flows/FlowRetryTest.kt b/node/src/integration-test/kotlin/net/corda/node/flows/FlowRetryTest.kt index ea7693fd63..8ccf2ac1e1 100644 --- a/node/src/integration-test/kotlin/net/corda/node/flows/FlowRetryTest.kt +++ b/node/src/integration-test/kotlin/net/corda/node/flows/FlowRetryTest.kt @@ -10,6 +10,8 @@ import net.corda.core.utilities.ProgressTracker import net.corda.core.utilities.getOrThrow import net.corda.core.utilities.unwrap import net.corda.node.services.Permissions +import net.corda.testing.core.ALICE_NAME +import net.corda.testing.core.BOB_NAME import net.corda.testing.core.* import net.corda.testing.driver.DriverParameters import net.corda.testing.driver.driver @@ -77,7 +79,7 @@ class InitiatorFlow(private val sessionsCount: Int, private val iterationsCount: fun tracker() = ProgressTracker(FIRST_STEP) - val seen = Collections.synchronizedSet(HashSet()) + val seen: MutableSet = Collections.synchronizedSet(HashSet()) fun visit(sessionNum: Int, iterationNum: Int, step: Step) { val visited = Visited(sessionNum, iterationNum, step) @@ -128,7 +130,7 @@ class InitiatedFlow(val session: FlowSession) : FlowLogic() { fun tracker() = ProgressTracker(FIRST_STEP) - val seen = Collections.synchronizedSet(HashSet()) + val seen: MutableSet = Collections.synchronizedSet(HashSet()) fun visit(sessionNum: Int, iterationNum: Int, step: Step) { val visited = Visited(sessionNum, iterationNum, step) diff --git a/node/src/integration-test/kotlin/net/corda/node/modes/draining/P2PFlowsDrainingModeTest.kt b/node/src/integration-test/kotlin/net/corda/node/modes/draining/P2PFlowsDrainingModeTest.kt index 8a20ea7684..f9f0ad2ea0 100644 --- a/node/src/integration-test/kotlin/net/corda/node/modes/draining/P2PFlowsDrainingModeTest.kt +++ b/node/src/integration-test/kotlin/net/corda/node/modes/draining/P2PFlowsDrainingModeTest.kt @@ -6,8 +6,8 @@ import net.corda.core.flows.* import net.corda.core.identity.Party import net.corda.core.internal.concurrent.map import net.corda.core.messaging.startFlow +import net.corda.core.utilities.contextLogger import net.corda.core.utilities.getOrThrow -import net.corda.core.utilities.loggerFor import net.corda.core.utilities.unwrap import net.corda.node.services.Permissions import net.corda.testing.core.* @@ -37,7 +37,7 @@ class P2PFlowsDrainingModeTest : IntegrationTest() { val databaseSchemas = IntegrationTestSchemas(*listOf(ALICE_NAME, BOB_NAME, DUMMY_NOTARY_NAME) .map { it.toDatabaseSchemaName() }.toTypedArray()) - private val logger = loggerFor() + private val logger = contextLogger() } private val portAllocation = PortAllocation.Incremental(10000) diff --git a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt index f9dfab39b7..3fe950a099 100644 --- a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt +++ b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt @@ -781,7 +781,7 @@ abstract class AbstractNode(val configuration: NodeConfiguration, } // Specific class so that MockNode can catch it. - class DatabaseConfigurationException(msg: String) : CordaException(msg) + class DatabaseConfigurationException(message: String) : CordaException(message) protected open fun startDatabase(metricRegistry: MetricRegistry? = null) { log.debug { diff --git a/node/src/main/kotlin/net/corda/node/services/persistence/DBCheckpointStorage.kt b/node/src/main/kotlin/net/corda/node/services/persistence/DBCheckpointStorage.kt index fa1c5eb566..48649a6263 100644 --- a/node/src/main/kotlin/net/corda/node/services/persistence/DBCheckpointStorage.kt +++ b/node/src/main/kotlin/net/corda/node/services/persistence/DBCheckpointStorage.kt @@ -65,7 +65,7 @@ class DBCheckpointStorage : CheckpointStorage { override fun getCheckpoint(id: StateMachineRunId): SerializedBytes? { val bytes = currentDBSession().get(DBCheckpoint::class.java, id.uuid.toString())?.checkpoint ?: return null - return SerializedBytes(bytes) + return SerializedBytes(bytes) } override fun getAllCheckpoints(): Stream>> { @@ -79,7 +79,7 @@ class DBCheckpointStorage : CheckpointStorage { } override fun getCheckpointCount(connection: Connection): Long { - try { + return try { return connection.prepareStatement("select count(*) from node_checkpoints").use { ps -> ps.executeQuery().use { rs -> rs.next() diff --git a/node/src/main/kotlin/net/corda/node/services/statemachine/SessionRejectException.kt b/node/src/main/kotlin/net/corda/node/services/statemachine/SessionRejectException.kt index 90d4432f0d..cea4680411 100644 --- a/node/src/main/kotlin/net/corda/node/services/statemachine/SessionRejectException.kt +++ b/node/src/main/kotlin/net/corda/node/services/statemachine/SessionRejectException.kt @@ -5,4 +5,4 @@ import net.corda.core.CordaException /** * An exception propagated and thrown in case a session initiation fails. */ -class SessionRejectException(reason: String) : CordaException(reason) +class SessionRejectException(message: String) : CordaException(message) diff --git a/node/src/test/kotlin/net/corda/node/services/statemachine/ExceptionsSerializationTest.kt b/node/src/test/kotlin/net/corda/node/services/statemachine/ExceptionsSerializationTest.kt new file mode 100644 index 0000000000..e072716f0c --- /dev/null +++ b/node/src/test/kotlin/net/corda/node/services/statemachine/ExceptionsSerializationTest.kt @@ -0,0 +1,45 @@ +package net.corda.node.services.statemachine + +import net.corda.core.CordaException +import net.corda.core.node.services.UnknownAnonymousPartyException +import net.corda.core.serialization.SerializedBytes +import net.corda.core.serialization.deserialize +import net.corda.core.serialization.serialize +import net.corda.node.internal.AbstractNode +import net.corda.node.utilities.registration.CertificateRequestException +import net.corda.testing.core.SerializationEnvironmentRule +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import org.junit.runners.Parameterized +import kotlin.test.assertEquals + +@RunWith(Parameterized::class) +class ExceptionsSerializationTest(private val initialException: CordaException, @Suppress("UNUSED_PARAMETER") description: String) { + + companion object { + @JvmStatic + @Parameterized.Parameters(name = "{1}") + fun data(): Collection> = listOf( + arrayOf(SessionRejectException("test"), "SessionRejectException"), + arrayOf(CertificateRequestException("test"), "CertificateRequestException"), + arrayOf(UnknownAnonymousPartyException("test"), "UnknownAnonymousPartyException"), + arrayOf(AbstractNode.DatabaseConfigurationException("test"), "DatabaseConfigurationException") + ) + } + + @Rule + @JvmField + val testSerialization = SerializationEnvironmentRule() + + @Test + fun testMarshal() { + val fromSerialized = performRoundTripSerialization(initialException) + assertEquals(initialException.message, fromSerialized.message) + } + + private inline fun performRoundTripSerialization(obj: T): T { + val serializedForm: SerializedBytes = obj.serialize() + return serializedForm.deserialize() + } +} \ No newline at end of file