Victor Wong created FLINK-14642: ----------------------------------- Summary: Flink TupleSerializer and CaseClassSerializer shoud support copy NULL values Key: FLINK-14642 URL: https://issues.apache.org/jira/browse/FLINK-14642 Project: Flink Issue Type: Bug Components: API / Type Serialization System Affects Versions: 1.9.1 Reporter: Victor Wong
Currently, TupleSerializer and CaseCassSerializer do not support serialize NULL values, which I think is acceptable. But not supporting to copy NULL values will cause the following codes to throw an exception, which I think is not matched with users' expectations. *codes:* {code:java} stream.map(xxx).filter(_ != null).xxx //the return type of the map function is Tuple and it may return null{code} *exception info:* {code:java} Caused by: java.lang.NullPointerExceptionCaused by: java.lang.NullPointerException at org.apache.flink.api.scala.typeutils.CaseClassSerializer.copy(CaseClassSerializer.scala:92) at org.apache.flink.api.scala.typeutils.CaseClassSerializer.copy(CaseClassSerializer.scala:32) at org.apache.flink.streaming.runtime.tasks.OperatorChain$CopyingChainingOutput.pushToOperator(OperatorChain.java:635) {code} *suggestion:* Can we make the `copy` method of TupleSerializer/CaseClassSerializer to handle NULL values? e.g. {code:java} // org.apache.flink.api.scala.typeutils.CaseClassSerializer#copy def copy(from: T): T = { // handle NULL values. if(from == null) { return from } initArray() var i = 0 while (i < arity) { fields(i) = fieldSerializers(i).copy(from.productElement(i).asInstanceOf[AnyRef]) i += 1 } createInstance(fields) } {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)