Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Invalid
-
1.14.0, 1.15.0
-
None
-
None
Description
The ability to place @TypeInfo on field was added in https://github.com/apache/flink/pull/8344 . But it seams like the fact that it requires field to be a valid POJO was overlooked. In my case I was trying to add custom serializer for Jackson's ObjectNode (wrapped in List but not sure if this is relevant https://issues.apache.org/jira/browse/FLINK-26470) which is not a valid POJO, and this requirement seams to defeat the whole purpose of such feature. It also doesn't look like like there's a way to register org.apache.flink.api.common.typeutils.TypeSerializer globally on 3rd-party types
code snippet from TypeExtractor:
Type fieldType = field.getGenericType(); if (!isValidPojoField(field, clazz, typeHierarchy) && clazz != Row.class) { LOG.info( "Class " + clazz + " cannot be used as a POJO type because not all fields are valid POJO fields, " + "and must be processed as GenericType. {}", GENERIC_TYPE_DOC_HINT); return null; } try { final TypeInformation<?> typeInfo; List<Type> fieldTypeHierarchy = new ArrayList<>(typeHierarchy); TypeInfoFactory factory = getTypeInfoFactory(field); if (factory != null) {