Moved the transaction context into the RPC call site.

This commit is contained in:
Clinton Alexander 2017-01-30 11:21:01 +00:00
parent 65f5259ac9
commit 65b29a8379
2 changed files with 5 additions and 9 deletions

View File

@ -106,7 +106,9 @@ class CordaRPCOpsImpl(
override fun currentNodeTime(): Instant = Instant.now(services.clock)
override fun uploadFile(dataType: String, name: String?, file: InputStream): String {
val acceptor = services.storageService.uploaders.firstOrNull { it.accepts(dataType) }
return acceptor?.upload(file) ?: throw RuntimeException("Cannot find file upload acceptor for $dataType")
return databaseTransaction(database) {
acceptor?.upload(file) ?: throw RuntimeException("Cannot find file upload acceptor for $dataType")
}
}
override fun partyFromKey(key: CompositeKey) = services.identityService.partyFromKey(key)

View File

@ -17,10 +17,7 @@ import net.corda.core.utilities.ProgressTracker
import net.corda.irs.flows.FixingFlow
import net.corda.irs.flows.RatesFixFlow
import net.corda.node.services.api.AcceptsFileUpload
import net.corda.node.utilities.AbstractJDBCHashSet
import net.corda.node.utilities.FiberBox
import net.corda.node.utilities.JDBCHashedTable
import net.corda.node.utilities.localDate
import net.corda.node.utilities.*
import org.jetbrains.exposed.sql.ResultRow
import org.jetbrains.exposed.sql.statements.InsertStatement
import org.jetbrains.exposed.sql.transactions.transaction
@ -111,10 +108,7 @@ object NodeInterestRates {
override fun upload(data: InputStream): String {
val fixes = parseFile(data.bufferedReader().readText())
// TODO: Look into why knownFixes requires a transaction
transaction {
oracle.knownFixes = fixes
}
oracle.knownFixes = fixes
val msg = "Interest rates oracle accepted ${fixes.size} new interest rate fixes"
println(msg)
return msg