-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Using Map's with Avro Generated Types Generates Weird Errors #6669
Comments
Which version of the Avro compiler you are using? Pulsar uses Avro 1.8.2 and upgrades to 1.9.1 in version 2.5.1(#5938). I'm not sure is it caused by inconsistent Avro versions. |
I was using 1.9.2 by the time I filed the issue. However, I just tested here with both 1.8.2 and 1.9.1 and I still get the same error:
|
@riferrei The problem is fixed by #6406, I have tested your reproduce demo(with 1.9.2 compiler) on the master branch and it passed. #6406 will release at 2.5.1 and 2.5.1-RC is out for validation. If you are interested in the validation you can take a look at the email thread https://lists.apache.org/thread.html/r7b2783d13007e621e2e880a37d808e6a9ec178ece2090e117b8c68e6%40%3Cdev.pulsar.apache.org%3E, thanks. |
Hi @codelipenghui, Thank you so much for looking into this. I will be taking 2.5.1-RC for a spin for sure. -- @riferrei |
@riferrei I close the issue first. If the issue not resolved, feel free to reopen it. |
Description of the bug
I have a project that uses Avro generated types (POJO's generated by the Avro compiler) as the type to be serialized with the producer. Everything works fine excepts if one of the fields is a map. When the field is a map and a value is set into this map, the following error is generated:
Anecdotally, if the field containing a map is not set, the message is properly serialized, proving that the problem is indeed the map field. Also, the same type if implemented as a POJO class by hand (without using a Avro compiler) works fine. Which means that something happens during the message serialization when the type being serialized contains the code generated by the compiler.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The code should execute completely without complaining about any errors related to the type being serialized. This is true specifically because the type being used was generated by the Avro compiler, which double-checks any compliance with the spec.
Screenshots
N/A
Desktop (please complete the following information):
The text was updated successfully, but these errors were encountered: