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

NPE from CaseClassSerializer when dealing with null Option field

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.0.0
    • None
    • None

    Description

      This error occurs when serializing a Scala case class with an field of Option[] type where the value is not Some or None, but null.

      If this is not supported we should have a good error message.

      java.lang.RuntimeException: ConsumerThread threw an exception: null
      at org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumer09.run(FlinkKafkaConsumer09.java:336)
      at org.apache.flink.streaming.api.operators.StreamSource.run(StreamSource.java:78)
      at org.apache.flink.streaming.runtime.tasks.SourceStreamTask.run(SourceStreamTask.java:56)
      at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:224)
      at org.apache.flink.runtime.taskmanager.Task.run(Task.java:559)
      at java.lang.Thread.run(Thread.java:745)
      Caused by: java.lang.RuntimeException
      at org.apache.flink.streaming.runtime.io.RecordWriterOutput.collect(RecordWriterOutput.java:81)
      at org.apache.flink.streaming.runtime.io.RecordWriterOutput.collect(RecordWriterOutput.java:39)
      at org.apache.flink.streaming.api.operators.StreamSource$NonTimestampContext.collect(StreamSource.java:158)
      at org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumer09$ConsumerThread.run(FlinkKafkaConsumer09.java:473)
      Caused by: java.lang.NullPointerException
      at org.apache.flink.api.scala.typeutils.CaseClassSerializer.serialize(CaseClassSerializer.scala:100)
      at org.apache.flink.api.scala.typeutils.CaseClassSerializer.serialize(CaseClassSerializer.scala:30)
      at org.apache.flink.api.scala.typeutils.CaseClassSerializer.serialize(CaseClassSerializer.scala:100)
      at org.apache.flink.api.scala.typeutils.CaseClassSerializer.serialize(CaseClassSerializer.scala:30)
      at org.apache.flink.streaming.runtime.streamrecord.StreamRecordSerializer.serialize(StreamRecordSerializer.java:107)
      at org.apache.flink.streaming.runtime.streamrecord.StreamRecordSerializer.serialize(StreamRecordSerializer.java:42)
      at org.apache.flink.runtime.plugable.SerializationDelegate.write(SerializationDelegate.java:56)
      at org.apache.flink.runtime.io.network.api.serialization.SpanningRecordSerializer.addRecord(SpanningRecordSerializer.java:79)
      at org.apache.flink.runtime.io.network.api.writer.RecordWriter.emit(RecordWriter.java:84)
      at org.apache.flink.streaming.runtime.io.StreamRecordWriter.emit(StreamRecordWriter.java:86)
      at org.apache.flink.streaming.runtime.io.RecordWriterOutput.collect(RecordWriterOutput.java:78)
      ... 3 more

      Attachments

        Activity

          People

            chermenin Alexander Chermenin
            jgrier Jamie Grier
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: