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)

Reply via email to