From ef409c4d65697f9bbed94fe39e73fe3c3f478862 Mon Sep 17 00:00:00 2001 From: Katelyn Baker Date: Wed, 13 Sep 2017 10:35:59 +0100 Subject: [PATCH] CORDA-539 - Fix for attempting to create a primitive nullable field Refactoring meant that the secondary constructor wasn't being called any more and thus the check wasn't being made. Originally, we always created copies of fields when constructing a schema which meant we always called the secondary constructor, now we don't --- .../internal/serialization/carpenter/SchemaFields.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/carpenter/SchemaFields.kt b/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/carpenter/SchemaFields.kt index 2ceaa5ca97..33ab42dcd4 100644 --- a/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/carpenter/SchemaFields.kt +++ b/node-api/src/main/kotlin/net/corda/nodeapi/internal/serialization/carpenter/SchemaFields.kt @@ -4,8 +4,6 @@ import jdk.internal.org.objectweb.asm.Opcodes.* import org.objectweb.asm.ClassWriter import org.objectweb.asm.MethodVisitor import org.objectweb.asm.Type -import java.beans.BeanDescriptor -import java.util.* abstract class Field(val field: Class) { abstract var descriptor: String? @@ -95,12 +93,14 @@ class NullableField(field: Class) : ClassField(field) { override val nullabilityAnnotation = "Ljavax/annotation/Nullable;" constructor(name: String, field: Class) : this(field) { + this.name = name + } + + init { if (field.isPrimitive) { throw NullablePrimitiveException( "Field $name is primitive type ${Type.getDescriptor(field)} and thus cannot be nullable") } - - this.name = name } override fun nullTest(mv: MethodVisitor, slot: Int) {