http://deprecated-apache-flink-user-mailing-list-archive.369.s1.nabble.com/Serialization-questions-tp21561.html
Hi to all,
I was trying to check whether our jobs are properly typed or not.
I've started disabling generic types[1] in order to discover untyped transformations and so I added the proper returns() to operators.
Unfortunately there are jobs where we serialize Thrift and DateTime objects, so I need to properly configure the serializers in the ExecutionEnvironment:
env.registerTypeWithKryoSerializer(DateTime.class, JodaDateTimeSerializer.class);
env.getConfig().addDefaultKryoSerializer(EntitonAtom.class, TBaseSerializer.class);
env.getConfig().addDefaultKryoSerializer(EntitonQuad.class, TBaseSerializer.class);
Those jobs don't work when I disable generic types and I get the following exception:
Exception in thread "main" java.lang.UnsupportedOperationException: Generic types have been
disabled in the ExecutionConfig and type xxx.EntitonAtom is treated as a generic type.
I have a couple of questions:
- addDefaultKryoSerializer differs from registerTypeWithKryoSerializer because addDefaultKryoSerializer use the passed serializer also for subclasses of the configured class. Am I right? This is not very clear in the method's Javadoc...
- how to avoid that exception?
Best,
Flavio
[1] env.getConfig().disableGenericTypes();