diff --git a/core/src/main/kotlin/net/corda/core/serialization/carpenter/ClassCarpenter.kt b/core/src/main/kotlin/net/corda/core/serialization/carpenter/ClassCarpenter.kt index 5d774df240..5f0f1abd99 100644 --- a/core/src/main/kotlin/net/corda/core/serialization/carpenter/ClassCarpenter.kt +++ b/core/src/main/kotlin/net/corda/core/serialization/carpenter/ClassCarpenter.kt @@ -216,7 +216,7 @@ class ClassCarpenter { * Generate bytecode for the given schema and load into the JVM. The returned class object can be used to * construct instances of the generated class. * - * @throws DuplicateName if the schema's name is already taken in this namespace (you can create a new ClassCarpenter if you're OK with ambiguous names) + * @throws DuplicateNameException if the schema's name is already taken in this namespace (you can create a new ClassCarpenter if you're OK with ambiguous names) */ fun build(schema: Schema): Class<*> { validateSchema(schema) @@ -291,7 +291,7 @@ class ClassCarpenter { private fun ClassWriter.generateToString(schema: Schema) { val toStringHelper = "com/google/common/base/MoreObjects\$ToStringHelper" - with(visitMethod(ACC_PUBLIC, "toString", "()Ljava/lang/String;", "", null)) { + with(visitMethod(ACC_PUBLIC, "toString", "()Ljava/lang/String;", null, null)) { visitCode() // com.google.common.base.MoreObjects.toStringHelper("TypeName") visitLdcInsn(schema.name.split('.').last()) diff --git a/core/src/test/kotlin/net/corda/core/serialization/carpenter/ClassCarpenterTest.kt b/core/src/test/kotlin/net/corda/core/serialization/carpenter/ClassCarpenterTest.kt index 6dc4f5b12a..020d907e5f 100644 --- a/core/src/test/kotlin/net/corda/core/serialization/carpenter/ClassCarpenterTest.kt +++ b/core/src/test/kotlin/net/corda/core/serialization/carpenter/ClassCarpenterTest.kt @@ -1,12 +1,11 @@ package net.corda.core.serialization.carpenter - import org.junit.Test import java.lang.reflect.Field import java.lang.reflect.Method import kotlin.test.assertEquals -import kotlin.test.assertTrue - +import java.beans.Introspector +import kotlin.test.assertNotEquals class ClassCarpenterTest { interface DummyInterface { @@ -491,4 +490,17 @@ class ClassCarpenterTest { assertEquals (javax.annotation.Nonnull::class.java, clazz.getMethod("getB").annotations[0].annotationClass.java) } + @Test + fun beanTest() { + val schema = ClassCarpenter.ClassSchema( + "pantsPantsPants", + mapOf("a" to ClassCarpenter.NonNullableField(Integer::class.java))) + val clazz = cc.build(schema) + val descriptors = Introspector.getBeanInfo(clazz).propertyDescriptors + + assertEquals(2, descriptors.size) + assertNotEquals(null, descriptors.find { it.name == "a" }) + assertNotEquals(null, descriptors.find { it.name == "class" }) + } + }