Skip to content

Add detail to avro exception message - #1505

Merged
lossyrob merged 2 commits into
locationtech:masterfrom
moradology:fix/avro-type-error-detail
Jun 28, 2016
Merged

lossyrob merged 2 commits into
locationtech:masterfrom
moradology:fix/avro-type-error-detail

Conversation

@moradology

Copy link
Copy Markdown
Contributor

This PR adds a little bit of information necessary to properly understand why the Avro decoding process fails in some circumstances and is a response to #1477

The new error looks something like:

org.apache.avro.AvroTypeException: Found geotrellis.raster.ByteArrayTile, expecting geotrellis.raster.ArrayMultibandTile, missing required field bands. If attempting to read multiband tiles, use a Reader[K, MultibandTile] rather than Reader[K, Tile]

@moradology moradology changed the title Add detail to avro exception message Add detail to avro exception message [WIP] Jun 2, 2016
@lossyrob

Copy link
Copy Markdown
Member

@moradology what is going on with this PR?

@moradology
moradology force-pushed the fix/avro-type-error-detail branch from 69841b4 to faa831d Compare June 22, 2016 17:44
@moradology moradology changed the title Add detail to avro exception message [WIP] Add detail to avro exception message Jun 22, 2016
@moradology

Copy link
Copy Markdown
Contributor Author

I investigated a few paths one might take to address this issue and ended up deciding the best path at this point is also the simplest. It seems as though we might want to consider parameterizing the names of generic avro codecs - this would give us a greater capacity to intelligently handle certain errors and to provide useful information in the case of failure.

For instance, the name here (https://github.com/geotrellis/geotrellis/blob/master/spark/src/main/scala/geotrellis/spark/io/avro/codecs/KeyValueRecordCodec.scala#L13) could be parameterized on the names of the underlying Key and Value codecs

Here's an example of the exception thrown after applying this PR: org.apache.avro.AvroTypeException: Found geotrellis.raster.ByteArrayTile, expecting geotrellis.raster.ArrayMultibandTile, missing required field bands. Check to ensure that the proper type parameters for this Reader have been provided.

@moradology
moradology force-pushed the fix/avro-type-error-detail branch from faa831d to e75c336 Compare June 22, 2016 19:51
@lossyrob
lossyrob merged commit 4a80fb9 into locationtech:master Jun 28, 2016
@lossyrob lossyrob added this to the 1.0 milestone Oct 18, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants