[ https://issues.apache.org/jira/browse/FLINK-952?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14036025#comment-14036025 ]
Stephan Ewen commented on FLINK-952: ------------------------------------ That is true, there is actually a reason for that: The data is treated as the type declared in the signature, because the type analysis and serializer generation happens at the "pre-flight" time. So if you have a MapFunction<A> and give it a B (subclass of A), it will treat the B as an A at runtime. > TypeExtractor requires the argument types of the UDF to be identical to the > parameter types > ------------------------------------------------------------------------------------------- > > Key: FLINK-952 > URL: https://issues.apache.org/jira/browse/FLINK-952 > Project: Flink > Issue Type: Bug > Reporter: Till Rohrmann > Assignee: Till Rohrmann > > The TypeExtractor checks for each operation whether the DataSet element types > are valid arguments for the UDF. However, it checks for strict equality > instead of a subtype relationship. Thus the following computation would not > work even though it should semantically be correct. > DataSet[B].map(new MapFunction[A,A](){ A map(A x)}) with B being a sub class > of A. -- This message was sent by Atlassian JIRA (v6.2#6252)