Hi, The following program compiles and runs w/o exceptions:
> public class Test { > > public static class A { > private int n; > > public A() { } > public int getN() { return n; } > public void setN(int n) { this.n = n; } > } > > public static class B { > private List<A> lst; > > public B() { } > public List<A> getLst() { return lst; } > public void setLst(List<A> lst) { this.lst = lst; } > } > > public static void main(String[] args) throws Exception { > StreamExecutionEnvironment env = > StreamExecutionEnvironment.createLocalEnvironment(); > > env.fromElements(new B()) > .print(); > > env.execute(); > } > } > When I add the following line, > env.getConfig().disableGenericTypes(); then the program shows me an exception: > Exception in thread "main" java.lang.UnsupportedOperationException: > Generic types have been disabled in the ExecutionConfig and type > java.util.List is treated as a generic type. > at > org.apache.flink.api.java.typeutils.GenericTypeInfo.createSerializer(GenericTypeInfo.java:86) > at > org.apache.flink.api.java.typeutils.PojoTypeInfo.createPojoSerializer(PojoTypeInfo.java:319) > at > org.apache.flink.api.java.typeutils.PojoTypeInfo.createSerializer(PojoTypeInfo.java:311) > at > org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.fromCollection(StreamExecutionEnvironment.java:970) > at > org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.fromElements(StreamExecutionEnvironment.java:871) > at Test.main(Test.java:29) To avoid this exception, I found that I have to declare a type factory like: > public static class BTypeFactory extends TypeInfoFactory<B> { > @Override > public TypeInformation<B> createTypeInfo(Type t, Map<String, > TypeInformation<?>> genericParameters) { > return Types.POJO( > B.class, > ImmutableMap.<String, TypeInformation<?>>builder() > .put("lst", Types.LIST(Types.POJO(A.class))) > .build() > ); > } > } and give it to class B as follows: > @TypeInfo(BTypeFactory.class) > public static class B { Is there no other way but to declare BTypeFactory in such cases? I don't like the way I have to type a field name twice, one for a member variable and the other for an Map entry in TypeInfoFactory. Thanks in advance, Dongwon