You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@gobblin.apache.org by "Ahmed Abdul Hamid (Jira)" <ji...@apache.org> on 2019/10/23 01:59:00 UTC
[jira] [Updated] (GOBBLIN-923) Array and Map converters do not
handle nullable elements properly
[ 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)