Removed redundant serialisation of checkpoints (#1004)

This commit is contained in:
Shams Asari 2017-08-14 16:24:49 +01:00
parent 3138e2b6de
commit 3888635055

View File

@ -1,11 +1,10 @@
package net.corda.node.services.persistence
import net.corda.core.serialization.SerializationDefaults
import net.corda.core.serialization.deserialize
import net.corda.core.serialization.serialize
import net.corda.core.serialization.SerializedBytes
import net.corda.node.services.api.Checkpoint
import net.corda.node.services.api.CheckpointStorage
import net.corda.node.utilities.*
import net.corda.node.utilities.DatabaseTransactionManager
import net.corda.node.utilities.NODE_DATABASE_PREFIX
import javax.persistence.Column
import javax.persistence.Entity
import javax.persistence.Id
@ -28,11 +27,11 @@ class DBCheckpointStorage : CheckpointStorage {
var checkpoint: ByteArray = ByteArray(0)
)
override fun addCheckpoint(value: Checkpoint) {
override fun addCheckpoint(checkpoint: Checkpoint) {
val session = DatabaseTransactionManager.current().session
session.save(DBCheckpoint().apply {
checkpointId = value.id.toString()
checkpoint = value.serialize(context = SerializationDefaults.CHECKPOINT_CONTEXT).bytes
checkpointId = checkpoint.id.toString()
this.checkpoint = checkpoint.serializedFiber.bytes
})
}
@ -50,10 +49,9 @@ class DBCheckpointStorage : CheckpointStorage {
val criteriaQuery = session.criteriaBuilder.createQuery(DBCheckpoint::class.java)
val root = criteriaQuery.from(DBCheckpoint::class.java)
criteriaQuery.select(root)
val query = session.createQuery(criteriaQuery)
val checkpoints = query.resultList.map { e -> e.checkpoint.deserialize<Checkpoint>(context = SerializationDefaults.CHECKPOINT_CONTEXT) }.asSequence()
for (e in checkpoints) {
if (!block(e)) {
for (row in session.createQuery(criteriaQuery).resultList) {
val checkpoint = Checkpoint(SerializedBytes(row.checkpoint))
if (!block(checkpoint)) {
break
}
}