Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-29534

@TypeInfo on field requires field type to be valid Pojo

    XMLWordPrintableJSON

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) {

       

       

      Attachments

        Activity

          People

            Unassigned Unassigned
            exidex Exidex
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: