Ahmed Abdul Hamid created GOBBLIN-923:
-----------------------------------------
Summary: Array and Map converters do not check if individual
JsonElement objects are JsonNull
Key: GOBBLIN-923
URL: https://issues.apache.org/jira/browse/GOBBLIN-923
Project: Apache Gobblin
Issue Type: Bug
Reporter: Ahmed Abdul Hamid
The following converters do not check if the {{JsonElement}} objects they are
invoked with are {{JsonNull}}.
* {{JsonElementConversionWithAvroSchemaFactory::ArrayConverter}}
* {{JsonElementConversionWithAvroSchemaFactory::MapConverter}}
* {{JsonElementConversionFactory::ArrayConverter}}
* {{JsonElementConversionFactory::MapConverter}}
This can cause these converters to throw {{UnsupportedOperationException}},
e.g. an {{ArrayConverter}} invoked with an array of nullable strings throws
{code:java}
Caused by: java.lang.UnsupportedOperationException: JsonNull
at com.google.gson.JsonElement.getAsString(JsonElement.java:192)
~[gson-2.8.5.jar:?]
at
org.apache.gobblin.converter.avro.JsonElementConversionFactory$StringConverter.convertField(JsonElementConversionFactory.java:322)
~[gobblin-core-1.64.1501.jar:?]
at
org.apache.gobblin.converter.avro.JsonElementConversionWithAvroSchemaFactory$ArrayConverter.convertField(JsonElementConversionWithAvroSchemaFactory.java:93)
~[gobblin-core-1.64.1501.jar:?]
at
org.apache.gobblin.converter.avro.JsonElementConversionFactory$JsonElementConverter.convert(JsonElementConversionFactory.java:280)
~[gobblin-core-1.64.1501.jar:?]
at
org.apache.gobblin.converter.avro.JsonRecordAvroSchemaToAvroConverter.convertNestedRecord(JsonRecordAvroSchemaToAvroConverter.java:125)
~[gobblin-core-1.64.1501.jar:?]
at
org.apache.gobblin.converter.avro.JsonRecordAvroSchemaToAvroConverter.convertRecord(JsonRecordAvroSchemaToAvroConverter.java:71)
~[gobblin-core-1.64.1501.jar:?]
at
org.apache.gobblin.converter.avro.JsonRecordAvroSchemaToAvroConverter.convertRecord(JsonRecordAvroSchemaToAvroConverter.java:43)
~[gobblin-core-1.64.1501.jar:?] {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)