java - Generated Avro Builder set null doesn't overwrite with default -


in avro schema, i've defined field this

{   "name": "myfield",   "type": "string",   "default": "" } 

when build avro object in java set myfield null (my code copying values 1 place another)

myobject myobject = myobject.newbuilder().setmyfield(null).build(); 

i end with

myobject.getmyfield() == null 

is expected behaviour? doing wrong? i've have expected we'd end default value "".

because null isn't valid value field when try , serialise object (for sending kafka)

do need null check field before calling setter on builder

i got around problem allowing nulls. maybe it's better default null (meaningless) rather "" (has meaning) anyway.

{   "name": "myfield",   "type": [     "null",     "string"   ],   "default": null } 

Comments