Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
1.9.0
-
None
Description
It happens when we want to use java.util.PriorityQueue in customed UDAF. The serialization error occurs with codes below.
@Test public void test() throws IOException { PriorityQueue<String> pq = new PriorityQueue<>((o1, o2) -> o1.length - o2.length - 1); pq.add("1234135"); pq.add("12323424135"); KryoSerializer kryoSerializer = new KryoSerializer(PriorityQueue.class, new ExecutionConfig()); kryoSerializer.serialize(pq, new DataOutputSerializer(10240)); }
And the NPE will be thrown:
Caused by: java.lang.NullPointerException at com.esotericsoftware.kryo.util.DefaultClassResolver.writeClass(DefaultClassResolver.java:80) at com.esotericsoftware.kryo.Kryo.writeClass(Kryo.java:488) at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:593) at org.apache.flink.runtime.types.PriorityQueueSerializer.write(PriorityQueueSerializer.java:67) at org.apache.flink.runtime.types.PriorityQueueSerializer.write(PriorityQueueSerializer.java:40) at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:599) at org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer.serialize(KryoSerializer.java:307) at org.apache.flink.util.InstantiationUtil.serializeToByteArray(InstantiationUtil.java:526)
Attachments
Issue Links
- links to