Stephan Ewen commented on FLINK-4645:

I think both methods have the same erasure (binary signature): {{public void 
registerTypeWithKryoSerializer(Class type, Class serializerClass)}}.
The japicmp plugin also classifies them as equivalent.

Interestingly, this is a case where binary compatibility is preserved, but 
whether source compatibility is more tricky to answer. I think it is, though, 
because {{Class<? extends Serializer>}} is strictly more generic than {{Class<? 
extends Serializer<?>>}}.

> Hard to register Kryo Serializers due to generics
> -------------------------------------------------
>                 Key: FLINK-4645
>                 URL: https://issues.apache.org/jira/browse/FLINK-4645
>             Project: Flink
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.1.2
>            Reporter: Stephan Ewen
>            Assignee: Stephan Ewen
>             Fix For: 1.2.0
> It currently does not work to do this:
> {code}
> env.registerTypeWithKryoSerializer(TreeMultimap.class, JavaSerializer.class);
> {code}
> instead on needs to do that:
> {code}
> env.registerTypeWithKryoSerializer(TreeMultimap.class, (Class<? extends 
> Serializer<?>>) JavaSerializer.class);
> {code}
> The fix would be to change the signature of the environment method from
> {code}
> public void registerTypeWithKryoSerializer(Class<?> type, Class<? extends 
> Serializer<?>> serializerClass)
> {code}
> to
> {code}
> public void registerTypeWithKryoSerializer(Class<?> type, Class<? extends 
> Serializer> serializerClass)
> {code}

This message was sent by Atlassian JIRA

Reply via email to