Fix error message when a non-nullable field receives a null value

Description

Currently, when this happens, you get an NPE:

ava.lang.Exception: java.lang.NullPointerException at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:489) ~[org.apache.hadoop.hadoop-mapreduce-client-common-2.8.0.jar:na] at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:549) ~[org.apache.hadoop.hadoop-mapreduce-client-common-2.8.0.jar:na] Caused by: java.lang.NullPointerException: null at co.cask.hydrator.common.RecordConverter.convertField(RecordConverter.java:105) ~[na:na] at co.cask.format.avro.AvroToStructuredTransformer.transform(AvroToStructuredTransformer.java:57) ~[na:na] at co.cask.format.parquet.input.PathTrackingParquetInputFormat$ParquetRecordReader.getCurrentValue(PathTrackingParquetInputFormat.java:101) ~[1548715186141-0/:na] at co.cask.format.parquet.input.PathTrackingParquetInputFormat$ParquetRecordReader.getCurrentValue(PathTrackingParquetInputFormat.java:55) ~[1548715186141-0/:na] at co.cask.hydrator.format.input.PathTrackingInputFormat$TrackingRecordReader.getCurrentValue(PathTrackingInputFormat.java:103) ~[na:na] at co.cask.hydrator.format.input.PathTrackingInputFormat$TrackingRecordReader.getCurrentValue(PathTrackingInputFormat.java:79) ~[na:na] at org.apache.hadoop.mapreduce.lib.input.CombineFileRecordReaderWrapper.getCurrentValue(CombineFileRecordReaderWrapper.java:98) ~[org.apache.hadoop.hadoop-mapreduce-client-core-2.8.0.jar:na] at org.apache.hadoop.mapreduce.lib.input.CombineFileRecordReader.getCurrentValue(CombineFileRecordReader.java:78) ~[org.apache.hadoop.hadoop-mapreduce-client-core-2.8.0.jar:na] at co.cask.cdap.internal.app.runtime.batch.dataset.input.DelegatingRecordReader.getCurrentValue(DelegatingRecordReader.java:60) ~[na:na] at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.getCurrentValue(MapTask.java:535) ~[org.apache.hadoop.hadoop-mapreduce-client-core-2.8.0.jar:na] at org.apache.hadoop.mapreduce.task.MapContextImpl.getCurrentValue(MapContextImpl.java:75) ~[org.apache.hadoop.hadoop-mapreduce-client-core-2.8.0.jar:na] at org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.getCurrentValue(WrappedMapper.java:86) ~[org.apache.hadoop.hadoop-mapreduce-client-core-2.8.0.jar:na] at org.apache.hadoop.mapreduce.lib.map.WrappedMapper$Context.getCurrentValue(WrappedMapper.java:86) ~[org.apache.hadoop.hadoop-mapreduce-client-core-2.8.0.jar:na] at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:146) ~[org.apache.hadoop.hadoop-mapreduce-client-core-2.8.0.jar:na] at co.cask.cdap.internal.app.runtime.batch.MapperWrapper.run(MapperWrapper.java:135) ~[na:na] at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787) ~[org.apache.hadoop.hadoop-mapreduce-client-core-2.8.0.jar:na] at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) ~[org.apache.hadoop.hadoop-mapreduce-client-core-2.8.0.jar:na] at org.apache.hadoop.mapred.LocalJobRunner$Job$MapTaskRunnable.run(LocalJobRunner.java:270) ~[org.apache.hadoop.hadoop-mapreduce-client-common-2.8.0.jar:na] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_191] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0_191] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_191] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_191] at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_191]

Release Notes

Improved the error message when a null value is read for a non-nullable field in avro file sources

Activity

Show:

Albert Shau May 2, 2019 at 8:16 PM

Fixed
Pinned fields
Click on the next to a field label to start pinning.

Details

Assignee

Reporter

Labels

Components

Fix versions

Priority

Created January 28, 2019 at 11:50 PM
Updated May 23, 2019 at 2:22 AM
Resolved May 2, 2019 at 9:44 PM