Merge pull request #7609 from corda/arshadm/ent-11264-serizlized-lambda

ENT-11264  Fix initialization of field serializer
This commit is contained in:
Adel El-Beik
2023-12-18 15:54:15 +00:00
committed by GitHub
7 changed files with 11 additions and 14 deletions

View File

@ -92,7 +92,10 @@ class CordaClassResolver(serializationContext: CheckpointSerializationContext) :
val serializer = when {
objectInstance != null -> KotlinObjectSerializer(objectInstance)
kotlin.jvm.internal.Lambda::class.java.isAssignableFrom(targetType) -> // Kotlin lambdas extend this class and any captured variables are stored in synthetic fields
FieldSerializer<Any>(kryo, targetType).apply { fieldSerializerConfig.ignoreSyntheticFields = false }
FieldSerializer<Any>(kryo, targetType).apply {
fieldSerializerConfig.ignoreSyntheticFields = false
updateFields()
}
Throwable::class.java.isAssignableFrom(targetType) -> ThrowableSerializer(kryo, targetType)
else -> maybeWrapForInterning(kryo.getDefaultSerializer(targetType), targetType)
}