Jason Kania created FLINK-11799:
-----------------------------------
Summary: KryoSerializer/OperatorChain ignores copy failure
resulting in NullPointerException
Key: FLINK-11799
URL: https://issues.apache.org/jira/browse/FLINK-11799
Project: Flink
Issue Type: Bug
Components: Connectors / Kafka
Affects Versions: 1.7.2
Reporter: Jason Kania
I was encountering a problem with NullPointerExceptions with the deserialized
object reaching my ProcessFunction process() method implementation as a null
value. Upon investigation, I discovered two issues with the implementation of
the KryoSerializer copy().
1) The 'public T copy(T from)' method swallows the error if the kryo copy()
call generates an exception. The code should report the copy error at least
once as a warning to be aware that the kryo copy() is failing. I understand
that the code is there to handle the lack of a copy implementation but due to
the potential inefficiency of having to write and read the object instead of
copying it, this would seem useful information to share at the least. It is
also important to have a warning in case the cause of the copy error is
something that needs to be fixed.
2) The call to 'kryo.readObject(input, from.getClass())' does not handle the
fact that the kryo readObject(Input input, Class aClass) method may return a
null value if there are any issues. This could be handled with a check or
warning in the OperatorChain.CopyingChainingOutput.pushToOperator() method but
is also ignored there, allowing a null value to be passed along without
providing any reason for the null value in logging.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)