diff --git a/finance/src/main/kotlin/net/corda/finance/internal/CashConfigDataFlow.kt b/finance/src/main/kotlin/net/corda/finance/internal/CashConfigDataFlow.kt index 3c2ab3c988..020667c174 100644 --- a/finance/src/main/kotlin/net/corda/finance/internal/CashConfigDataFlow.kt +++ b/finance/src/main/kotlin/net/corda/finance/internal/CashConfigDataFlow.kt @@ -24,7 +24,12 @@ class ConfigHolder(services: AppServiceHub) : SingletonSerializeAsToken() { val issuableCurrencies: List init { - val issuableCurrenciesStringList: List = uncheckedCast(services.getAppContext().config.get("issuableCurrencies")) + val config = services.getAppContext().config + val issuableCurrenciesStringList: List = if (config.exists("issuableCurrencies")) { + uncheckedCast(config.get("issuableCurrencies")) + } else { + emptyList() + } issuableCurrencies = issuableCurrenciesStringList.map(Currency::getInstance) (issuableCurrencies - supportedCurrencies).let { require(it.isEmpty()) { "$it are not supported currencies" } diff --git a/node/src/test/kotlin/net/corda/node/services/transactions/PersistentUniquenessProviderTests.kt b/node/src/test/kotlin/net/corda/node/services/transactions/PersistentUniquenessProviderTests.kt index 11e7f953d5..850ca02a78 100644 --- a/node/src/test/kotlin/net/corda/node/services/transactions/PersistentUniquenessProviderTests.kt +++ b/node/src/test/kotlin/net/corda/node/services/transactions/PersistentUniquenessProviderTests.kt @@ -48,11 +48,12 @@ class PersistentUniquenessProviderTests { } @Test - fun `should commit a transaction with unused inputs without exception`() { + fun `should successfully commit a transaction with unused inputs`() { val provider = PersistentUniquenessProvider(Clock.systemUTC(), database, TestingNamedCacheFactory()) val inputState = generateStateRef() - provider.commit(listOf(inputState), txID, identity, requestSignature).get() + val result = provider.commit(listOf(inputState), txID, identity, requestSignature).get() + assertEquals(UniquenessProvider.Result.Success, result) } @Test @@ -62,7 +63,8 @@ class PersistentUniquenessProviderTests { val inputs = listOf(inputState) val firstTxId = txID - provider.commit(inputs, firstTxId, identity, requestSignature).get() + val result = provider.commit(inputs, firstTxId, identity, requestSignature).get() + assertEquals(UniquenessProvider.Result.Success, result) val secondTxId = SecureHash.randomSHA256() diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/DriverDSLImpl.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/DriverDSLImpl.kt index 098a3fd0b9..0e7bad2e20 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/DriverDSLImpl.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/node/internal/DriverDSLImpl.kt @@ -638,7 +638,12 @@ class DriverDSLImpl( emptyList() } - val cordappDirectories = existingCorDappDirectoriesOption + (cordappsForAllNodes + additionalCordapps).map { TestCordappDirectories.getJarDirectory(it).toString() } + // Instead of using cordappsForAllNodes we get only these that are missing from additionalCordapps + // This way we prevent errors when we want the same CordApp but with different config + val appOverrides = additionalCordapps.map { it.name to it.version}.toSet() + val baseCordapps = cordappsForAllNodes.filter { !appOverrides.contains(it.name to it.version) } + + val cordappDirectories = existingCorDappDirectoriesOption + (baseCordapps + additionalCordapps).map { TestCordappDirectories.getJarDirectory(it).toString() } val config = NodeConfig(specifiedConfig.typesafe.withValue(NodeConfiguration.cordappDirectoriesKey, ConfigValueFactory.fromIterable(cordappDirectories.toSet())))