[ https://issues.apache.org/jira/browse/GOBBLIN-923?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sudarshan Vasudevan updated GOBBLIN-923: ---------------------------------------- Fix Version/s: 0.15.0 > 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 > Fix For: 0.15.0 > > Time Spent: 0.5h > Remaining Estimate: 0h > > The following converters do not check if the {{JsonElement}} objects they are > invoked with are {{JsonNull}} even if these elements are nullable. > * {{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)