Skip to content

InvalidFormatException for JsonToken.VALUE_EMBEDDED_OBJECT #1730

@zigzago

Description

@zigzago

jackson 2.9.0

I got InvalidFormatException. It works fine in 2.8

Caused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `org.bson.types.ObjectId` from native value (`JsonToken.VALUE_EMBEDDED_OBJECT`) of type `org.bson.types.ObjectId`: incompatible types
 at [Source: org.litote.bson4jackson.io.LittleEndianInputStream@69a2b3b6; pos: 5] (through reference chain: org.litote.kmongo.model.Friend["_id"])
	at com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:67)
	at com.fasterxml.jackson.databind.DeserializationContext.weirdNativeValueException(DeserializationContext.java:1568)
	at com.fasterxml.jackson.databind.DeserializationContext.handleWeirdNativeValue(DeserializationContext.java:975)
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromEmbedded(BeanDeserializerBase.java:1471)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:176)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:161)
	at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:519)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeWithErrorWrapping(BeanDeserializer.java:527)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeUsingPropertyBased(BeanDeserializer.java:416)
	at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromObjectUsingNonDefault(BeanDeserializerBase.java:1265)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:325)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:159)
	at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4001)
	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3079)

in BeanDeserializerBase line 1469 I think that instead
!_beanType.getClass().isInstance(value)
It should be !_beanType.getRawClass().isInstance(value)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions