Jacob Jona Fahlenkamp created FLINK-35887:
---------------------------------------------
Summary: Null Pointer Exception in TypeExtractor.isRecord when
trying to provide type info for interface
Key: FLINK-35887
URL: https://issues.apache.org/jira/browse/FLINK-35887
Project: Flink
Issue Type: Bug
Components: API / Type Serialization System
Affects Versions: 1.19.1
Reporter: Jacob Jona Fahlenkamp
The following code
{code:java}
import org.apache.flink.api.common.typeinfo.TypeInfo;
import org.apache.flink.api.common.typeinfo.TypeInfoFactory;
import org.apache.flink.api.common.typeinfo.TypeInformation;
import org.apache.flink.api.common.typeinfo.Types;
import org.apache.flink.types.PojoTestUtils;
import org.junit.jupiter.api.Test;
import java.lang.reflect.Type;
import java.util.Map;
public class DebugTest {
@TypeInfo(FooFactory.class)
public interface Foo{}
public static class FooFactory extends TypeInfoFactory<Foo> {
@Override
public TypeInformation<Foo> createTypeInfo(Type type, Map<String,
TypeInformation<?>> map) {
return Types.POJO(Foo.class, Map.of());
}
}
@Test
void test() {
PojoTestUtils.assertSerializedAsPojo(Foo.class);
}
} {code}
throws this exception:
{code:java}
java.lang.NullPointerException: Cannot invoke "java.lang.Class.getName()"
because the return value of "java.lang.Class.getSuperclass()" is null
at
org.apache.flink.api.java.typeutils.TypeExtractor.isRecord(TypeExtractor.java:2227)
at
org.apache.flink.api.java.typeutils.runtime.PojoSerializer.<init>(PojoSerializer.java:125)
at
org.apache.flink.api.java.typeutils.PojoTypeInfo.createPojoSerializer(PojoTypeInfo.java:359)
at
org.apache.flink.api.java.typeutils.PojoTypeInfo.createSerializer(PojoTypeInfo.java:347)
at
org.apache.flink.types.PojoTestUtils.assertSerializedAsPojo(PojoTestUtils.java:48)
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)