Github user kunal642 commented on a diff in the pull request: https://github.com/apache/carbondata/pull/2901#discussion_r231001835 --- Diff: hadoop/src/main/java/org/apache/carbondata/hadoop/util/CarbonVectorizedRecordReader.java --- @@ -171,13 +171,20 @@ public Object getCurrentValue() throws IOException, InterruptedException { rowCount += 1; Object[] row = new Object[carbonColumnarBatch.columnVectors.length]; for (int i = 0; i < carbonColumnarBatch.columnVectors.length; i ++) { + Object data = carbonColumnarBatch.columnVectors[i].getData(batchIdx - 1); if (carbonColumnarBatch.columnVectors[i].getType() == DataTypes.STRING || carbonColumnarBatch.columnVectors[i].getType() == DataTypes.VARCHAR) { - byte[] data = (byte[]) carbonColumnarBatch.columnVectors[i].getData(batchIdx - 1); - row[i] = ByteUtil.toString(data, 0, data.length); + if (data == null) { + row[i] = null; + } else { + row[i] = ByteUtil.toString((byte[]) data, 0, (((byte[]) data).length)); + } } else if (carbonColumnarBatch.columnVectors[i].getType() == DataTypes.BOOLEAN) { - byte data = (byte) carbonColumnarBatch.columnVectors[i].getData(batchIdx - 1); - row[i] = ByteUtil.toBoolean(data); + if (data == null) { + row[i] = null; + } else { + row[i] = ByteUtil.toBoolean((byte) data); + } --- End diff -- getData is already has a check for null values. Because here explicit conversion is required therefore null check had to be added.
---