From 12982b30346685b0d4289555e017217ca8c145ca Mon Sep 17 00:00:00 2001 From: Andrzej Cichocki <andrzej.cichocki@r3.com> Date: Mon, 2 Oct 2017 15:59:55 +0100 Subject: [PATCH] Move dbCloser to MockNode, the only thing that uses it. (#1512) --- .../src/main/kotlin/net/corda/node/internal/AbstractNode.kt | 6 +----- .../src/main/kotlin/net/corda/testing/node/MockNode.kt | 6 ++++++ 2 files changed, 7 insertions(+), 5 deletions(-) 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 ea492d2a64..b0293ed838 100644 --- a/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt +++ b/node/src/main/kotlin/net/corda/node/internal/AbstractNode.kt @@ -146,7 +146,6 @@ abstract class AbstractNode(open val configuration: NodeConfiguration, protected lateinit var network: MessagingService protected val runOnStop = ArrayList<() -> Any?>() protected lateinit var database: CordaPersistence - protected var dbCloser: (() -> Any?)? = null lateinit var cordappProvider: CordappProviderImpl protected val cordappLoader by lazy { makeCordappLoader() } @@ -476,10 +475,7 @@ abstract class AbstractNode(open val configuration: NodeConfiguration, database.transaction { log.info("Connected to ${database.dataSource.connection.metaData.databaseProductName} database.") } - this.database::close.let { - dbCloser = it - runOnStop += it - } + runOnStop += database::close return database.transaction { insideTransaction() } diff --git a/testing/node-driver/src/main/kotlin/net/corda/testing/node/MockNode.kt b/testing/node-driver/src/main/kotlin/net/corda/testing/node/MockNode.kt index 63dd79f8d8..9ef99e42e8 100644 --- a/testing/node-driver/src/main/kotlin/net/corda/testing/node/MockNode.kt +++ b/testing/node-driver/src/main/kotlin/net/corda/testing/node/MockNode.kt @@ -241,6 +241,12 @@ class MockNetwork(private val networkSendManuallyPumped: Boolean = false, // It is used from the network visualiser tool. @Suppress("unused") val place: WorldMapLocation get() = findMyLocation()!! + private var dbCloser: (() -> Any?)? = null + override fun <T> initialiseDatabasePersistence(insideTransaction: () -> T) = super.initialiseDatabasePersistence { + dbCloser = database::close + insideTransaction() + } + fun disableDBCloseOnStop() { runOnStop.remove(dbCloser) }