FasterXML / FasterXML/jackson-dataformats-binary

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

Aperta
#88 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
protobuf
Lingua principale
Java
Stelle
347
Fork
156
Merge medio
3g 3h
PR unite (30g)
22

Descrizione

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).

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.