AvroConverter is throwing error when trying to convert avro data with null values for the fields whose schema is ["null","string"].It works fine for null data if the schema is ["null","int"].To elaborate more
{
"namespace": "xxx",
"type": "record",
"name": "yyy",
"fields": [
{"name": "key","type": ["null", "int"]},
{"name": "from_state","type": ["null", "string"]},
{"name": "to_state","type": ["null", "string"]}
]
}
Avro Converter is working fine for the following messages in kafka
{
"key":190057,
"from_state":"dsds" ,
"to_state":"dfd"
}
{
"key":null,
"from_state":"dsds" ,
"to_state":"dfd"
}
But it is failing for
{
"key":190057,
"from_state":null ,
"to_state":"dfd"
}
Following is the error :ERROR Thread WorkerSinkTask-local-file-sink-0 exiting with uncaught exception: (org.apache.kafka.connect.util.ShutdownableThread:84)
java.lang.NullPointerException
at io.confluent.connect.avro.AvroData.toConnectData(AvroData.java:863)
at io.confluent.connect.avro.AvroData.toConnectData(AvroData.java:946)
at io.confluent.connect.avro.AvroData.toConnectData(AvroData.java:751)
at io.confluent.connect.avro.AvroConverter.toConnectData(AvroConverter.java:103)
at org.apache.kafka.connect.runtime.WorkerSinkTask.convertMessages(WorkerSinkTask.java:273)
at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:175)
at org.apache.kafka.connect.runtime.WorkerSinkTaskThread.iteration(WorkerSinkTaskThread.java:90)
at org.apache.kafka.connect.runtime.WorkerSinkTaskThread.execute(WorkerSinkTaskThread.java:58)
at org.apache.kafka.connect.util.ShutdownableThread.run(ShutdownableThread.java:82)
I got this error when I'm trying to use connect-file-sink to consume data from kafka.