FasterXML / FasterXML/jackson-dataformats-binary

[protobuf] ObjectWriter fails to serialize depends on the order of messages

Open
#88 1 comment 0 reactions 0 assignees View on GitHub
protobuf
Dominant language
Java
Stars
347
Forks
156
Avg merge
3d 3h
Merged PRs (30d)
22

Description

ObjectWriter fails to serialize depends on the order of messages defined in a proto file.

proto1 below works fine.
```
// proto1
message Main {
required Other o = 1;
}
message Other {
required int32 f = 1;
}
```

proto2 below fails. The only difference is the order of message types.
```
// proto2
message Other {
required int32 f = 1;
}
message Main {
required Other o = 1;
}
```

Stack trace
```
com.fasterxml.jackson.core.JsonGenerationException: Unrecognized field 'o' (in Message of type Other); known fields are: [Field 'f', tag=8, wireType=0, fieldType=VINT32_STD]

at com.fasterxml.jackson.core.JsonGenerator._reportError(JsonGenerator.java:1914)
at com.fasterxml.jackson.dataformat.protobuf.ProtobufGenerator.writeFieldName(ProtobufGenerator.java:299)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:725)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:716)
at com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:155)
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:481)
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:401)
at com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1392)
at com.fasterxml.jackson.databind.ObjectWriter._configAndWriteValue(ObjectWriter.java:1120)
at com.fasterxml.jackson.databind.ObjectWriter.writeValueAsBytes(ObjectWriter.java:1017)
at com.fasterxml.jackson.dataformat.protobuf.schema.MessageResolutionTest.serializeTest(MessageResolutionTest.java:85)
```

Here is the [test case](https://gist.github.com/knoguchi/1ac2c621f27beeb3711fa397d06c31b1).

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.