[
https://issues.apache.org/jira/browse/GOBBLIN-923?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ahmed Abdul Hamid updated GOBBLIN-923:
--------------------------------------
Summary: Array and Map converters do not handle nullable elements properly
(was: Array and Map converters do not check if individual JsonElement objects
are JsonNull)
> Array and Map converters do not handle nullable elements properly
> -----------------------------------------------------------------
>
> Key: GOBBLIN-923
> URL: https://issues.apache.org/jira/browse/GOBBLIN-923
> Project: Apache Gobblin
> Issue Type: Bug
> Reporter: Ahmed Abdul Hamid
> Priority: Major
>
> 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)