@@ -34,7 +34,7 @@ internal class JsonNullableSerializer : StdSerializer<JsonNullable<*>> {
3434
3535 override fun createContextual (context : SerializationContext , property : BeanProperty ? ): ValueSerializer <* > {
3636 val parentType = property?.type ? : return this
37- val childType = parentType.containedTypeOrUnknown( 0 )
37+ val childType = parentType.containedType( 0 ) ? : context.error( " Could not determine child type " )
3838 val childSerializer = context.findValueSerializer(childType)
3939 if (childType == this .childType && childSerializer == this .childSerializer) return this
4040 return JsonNullableSerializer (this , childType, childSerializer)
@@ -88,16 +88,17 @@ internal class JsonNullableDeserializer : StdDeserializer<JsonNullable<*>> {
8888 }
8989
9090 override fun createContextual (context : DeserializationContext , property : BeanProperty ? ): ValueDeserializer <* > {
91- val parentType = property?.type ? : context.contextualType
92- val childType = parentType.containedTypeOrUnknown( 0 )
91+ val parentType = property?.type ? : context.contextualType ? : context.error( " Could not determine parent type " )
92+ val childType = parentType.containedType( 0 ) ? : context.error( " Could not determine child type " )
9393 val childDeserializer = context.findContextualValueDeserializer(childType, property)
9494 if (childType == this .childType && childDeserializer == this .childDeserializer) return this
9595 return JsonNullableDeserializer (this , childType, childDeserializer)
9696 }
9797
9898 override fun deserialize (parser : JsonParser , context : DeserializationContext ): JsonNullable <* > {
99- checkNotNull(childDeserializer)
100- val value = childDeserializer.deserialize(parser, context)
99+ val deserializer = childDeserializer
100+ ? : context.error(" JsonNullableDeserializer used without contextualization (childDeserializer is null)" )
101+ val value = deserializer.deserialize(parser, context)
101102 return JsonNullable .Present (value)
102103 }
103104
0 commit comments