jackson-dataformats-binary icon indicating copy to clipboard operation
jackson-dataformats-binary copied to clipboard

Invalid Union index (17); union only has 2 types

Open iNikem opened this issue 6 years ago • 4 comments

I believe this is a different issue from #123.

Please see the project attached. Running ./gradlew run demonstrates the failure.

We have a binary avro file serialised by Jackson. We have a writer schema in a separate file, which describes the class which was serialised. Next we have a reader schema with one of the fields from that class removed. In my actual project we have removed some fields from the class and updated a schema to be able to deserialised older data while ignoring removed fields. Unfortunately removing some fields from reader schema fails deserialisation.

The correct behaviour, as far as I understand it, should be to ignore fields which are not present in the reader schema.

avro.zip

iNikem avatar May 22 '19 06:05 iNikem

Sounds like a bug, thank you for reporting this. I hope to look into it relatively soon (there's bit of a backlog).

cowtowncoder avatar Jun 04 '19 04:06 cowtowncoder

I can reproduce this problem, added failing unit test. I suspect this is due to a problem in updating state after "missing" long field is skipped (or, likely, is not and should be skipped).

cowtowncoder avatar Jun 06 '19 03:06 cowtowncoder

Hello, any updates for this issue?

wincentzzz avatar Oct 21 '20 11:10 wincentzzz

@wincentzzz No. The usual practice is to add a note on issue if there are updates.

cowtowncoder avatar Oct 21 '20 16:10 cowtowncoder