Hi,
While building IT tests which extend MultipleProgramsTestBase, I
encountered a problem with serialization:
I posted a minimal example here:
https://gist.github.com/s1ck/566796df5f35ee1de6f9
This runs fine with LocalEnvironment. However, when executing this in
CollectionEnvironment, it leads to the following Exception:
Exception in thread "main" com.esotericsoftware.kryo.KryoException:
Class cannot be created (missing no-arg constructor): java.util.UUID
Serialization trace:
uuid (ObjectInTuple$ID)
at
com.esotericsoftware.kryo.Kryo$DefaultInstantiatorStrategy.newInstantiatorOf(Kryo.java:1228)
I tried to manually register a UUIDSerializer (which should not be
necessary as Flink has a dependency to such "default" serializers), but
this did not fix the problem.
What I don't understand in general is why the LocalEnvironment and the
CollectionEnvironment use different strategies (e.g. in serialization
and also in workflow execution).
Thanks for your help!
Best,
Martin