Github user StephanEwen commented on a diff in the pull request:
https://github.com/apache/flink/pull/5995#discussion_r188347289
--- Diff:
flink-formats/flink-avro/src/main/java/org/apache/flink/formats/avro/AvroDeserializationSchema.java
---
@@ -0,0 +1,215 @@
+/*
--- End diff --
This class uses a mixture of eager initialization of transient members (in
readObject()) and lazy initialization (in getDatumReader()).
I would suggest to do it all one way or the other.
My suggestion would be to avoid `readObject()` whenever possible. If you
encounter an exception during schema parsing (and it may be something weird
from Jackson, like a missing manifest due to a shading issue), you will get the
most unhelpful exception stack trace ever, in the weirdest place (like Flink's
RPC message decoder).
In my experience, when a user sees such a stack trace, they are rarely able
to diagnose that. Best case they show up on the mailing list, worst case they
give up.
---