Skip to content

StackTraceElementDeserializer not working if field visibility changed #1794

@dsingley

Description

@dsingley

exception when deserializing annotated StackTraceElement[] field:

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "declaringClass" (class java.lang.StackTraceElement), not marked as ignorable
        at [Source: N/A; line: -1, column: -1] (through reference chain: com.volumeintegration.va.messaging.ErrorObject["stackTrace"]->Object[][0]->java.lang.StackTraceElement["declaringClass"])
       at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:62)
       at com.fasterxml.jackson.databind.DeserializationContext.handleUnknownProperty(DeserializationContext.java:833)
       at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:1096)
       at com.fasterxml.jackson.databind.deser.std.StackTraceElementDeserializer.deserialize(StackTraceElementDeserializer.java:52)
       at com.fasterxml.jackson.databind.deser.std.StackTraceElementDeserializer.deserialize(StackTraceElementDeserializer.java:11)
       at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:196)
       at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:20)
       at com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:490)
       at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:95)
       at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:276)
       at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:140)
       at com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:3761)
       at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2090)
       at com.fasterxml.jackson.databind.ObjectMapper.treeToValue(ObjectMapper.java:2587)

experiencing on version 2.8.2, reproduced with 2.8.10 and 2.9.2

works fine in tests that serialize directly to and from a String, but fails when serialized to a byte[], first deserailized to a JsonNode and then from a JsonNode to the original object class

example test code:
https://groups.google.com/d/msg/jackson-user/buIEhJhB1xk/Zdg4_cTdAAAJ

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