diff --git a/node/src/integration-test-slow/kotlin/net/corda/node/flows/FlowCheckpointVersionNodeStartupCheckTest.kt b/node/src/integration-test-slow/kotlin/net/corda/node/flows/FlowCheckpointVersionNodeStartupCheckTest.kt index 8f440c23f2..e69703c80c 100644 --- a/node/src/integration-test-slow/kotlin/net/corda/node/flows/FlowCheckpointVersionNodeStartupCheckTest.kt +++ b/node/src/integration-test-slow/kotlin/net/corda/node/flows/FlowCheckpointVersionNodeStartupCheckTest.kt @@ -22,13 +22,11 @@ import net.corda.testing.driver.driver import net.corda.testing.node.internal.assertUncompletedCheckpoints import net.corda.testing.node.internal.enclosedCordapp import org.assertj.core.api.Assertions.assertThat -import org.junit.Ignore import org.junit.Test import java.nio.file.Path import kotlin.test.assertFailsWith // TraderDemoTest already has a test which checks the node can resume a flow from a checkpoint -@Ignore("TODO JDK17: Fixme") class FlowCheckpointVersionNodeStartupCheckTest { companion object { val defaultCordapp = enclosedCordapp() diff --git a/node/src/integration-test/kotlin/net/corda/node/customcheckpointserializer/DuplicateSerializerLogTest.kt b/node/src/integration-test/kotlin/net/corda/node/customcheckpointserializer/DuplicateSerializerLogTest.kt index 21e80ace26..0e96e84d3c 100644 --- a/node/src/integration-test/kotlin/net/corda/node/customcheckpointserializer/DuplicateSerializerLogTest.kt +++ b/node/src/integration-test/kotlin/net/corda/node/customcheckpointserializer/DuplicateSerializerLogTest.kt @@ -9,11 +9,9 @@ import net.corda.core.utilities.getOrThrow import net.corda.testing.driver.driver import net.corda.testing.driver.logFile import org.assertj.core.api.Assertions -import org.junit.Ignore import org.junit.Test import java.time.Duration -@Ignore("TODO JDK17: Fixme") class DuplicateSerializerLogTest{ @Test(timeout=300_000) fun `check duplicate serialisers are logged`() { diff --git a/node/src/integration-test/kotlin/net/corda/node/customcheckpointserializer/DuplicateSerializerLogWithSameSerializerTest.kt b/node/src/integration-test/kotlin/net/corda/node/customcheckpointserializer/DuplicateSerializerLogWithSameSerializerTest.kt index 00a93e212d..3608bc7a6b 100644 --- a/node/src/integration-test/kotlin/net/corda/node/customcheckpointserializer/DuplicateSerializerLogWithSameSerializerTest.kt +++ b/node/src/integration-test/kotlin/net/corda/node/customcheckpointserializer/DuplicateSerializerLogWithSameSerializerTest.kt @@ -12,11 +12,9 @@ import net.corda.testing.driver.driver import net.corda.testing.driver.logFile import net.corda.testing.node.internal.enclosedCordapp import org.assertj.core.api.Assertions -import org.junit.Ignore import org.junit.Test import java.time.Duration -@Ignore("TODO JDK17: Fixme") class DuplicateSerializerLogWithSameSerializerTest { @Test(timeout=300_000) fun `check duplicate serialisers are logged not logged for the same class`() { diff --git a/node/src/main/kotlin/net/corda/node/internal/CheckpointVerifier.kt b/node/src/main/kotlin/net/corda/node/internal/CheckpointVerifier.kt index 052de0ab3c..c793a8904b 100644 --- a/node/src/main/kotlin/net/corda/node/internal/CheckpointVerifier.kt +++ b/node/src/main/kotlin/net/corda/node/internal/CheckpointVerifier.kt @@ -1,5 +1,6 @@ package net.corda.node.internal +import com.esotericsoftware.kryo.KryoException import net.corda.core.cordapp.Cordapp import net.corda.core.crypto.SecureHash import net.corda.core.flows.FlowLogic @@ -42,13 +43,14 @@ object CheckpointVerifier { it.forEach { (_, serializedCheckpoint) -> val checkpoint = try { serializedCheckpoint.deserialize(checkpointSerializationContext) - } catch (e: ClassNotFoundException) { - val message = e.message - if (message != null) { - throw CheckpointIncompatibleException.CordappNotInstalledException(message) - } else { - throw CheckpointIncompatibleException.CannotBeDeserialisedException(e) + } catch (e: KryoException) { + if (e.cause is ClassNotFoundException) { + val message = (e.cause as ClassNotFoundException).message + if (message != null) { + throw CheckpointIncompatibleException.CordappNotInstalledException(message) + } } + throw CheckpointIncompatibleException.CannotBeDeserialisedException(e) } catch (e: Exception) { throw CheckpointIncompatibleException.CannotBeDeserialisedException(e) }