Details
-
Bug
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
1.8.2
-
None
-
None
Description
GenericDatumWriter throws an NPE at line# 67 if datum is null:
@Override
protected void writeString(Schema schema, Object datum, Encoder out)
throws IOException {
if (!(datum instanceof CharSequence)
&& getSpecificData().isStringable(datum.getClass())) {
datum = datum.toString(); // convert to string
}
writeString(datum, out);
}
The condition that is being verified in GenericDatumWriter at line # 69 should be broken to handle the case when datum is null:
/** Called to write data.*/
protected void write(Schema schema, Object datum, Encoder out)
throws IOException {
LogicalType logicalType = schema.getLogicalType();
if (datum != null && logicalType != null) {
Conversion<?> conversion = getData()
.getConversionByClass(datum.getClass(), logicalType);
writeWithoutConversion(schema,
convert(schema, logicalType, conversion, datum), out);
} else
{ writeWithoutConversion(schema, datum, out); }}