Return-Path: X-Original-To: apmail-parquet-commits-archive@minotaur.apache.org Delivered-To: apmail-parquet-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0C5AE186D9 for ; Mon, 22 Jun 2015 21:28:47 +0000 (UTC) Received: (qmail 85294 invoked by uid 500); 22 Jun 2015 21:28:47 -0000 Delivered-To: apmail-parquet-commits-archive@parquet.apache.org Received: (qmail 85267 invoked by uid 500); 22 Jun 2015 21:28:47 -0000 Mailing-List: contact commits-help@parquet.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@parquet.apache.org Delivered-To: mailing list commits@parquet.apache.org Received: (qmail 85258 invoked by uid 99); 22 Jun 2015 21:28:46 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 22 Jun 2015 21:28:46 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id CBA7EE362D; Mon, 22 Jun 2015 21:28:46 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: blue@apache.org To: commits@parquet.apache.org Message-Id: X-Mailer: ASF-Git Admin Mailer Subject: parquet-mr git commit: PARQUET-311: Fix NPE when debug logging metadata Date: Mon, 22 Jun 2015 21:28:46 +0000 (UTC) Repository: parquet-mr Updated Branches: refs/heads/master 29283b775 -> 89321a2de PARQUET-311: Fix NPE when debug logging metadata Fixes the issue reported at https://issues.apache.org/jira/browse/PARQUET-311 Author: Nezih Yigitbasi Closes #221 from nezihyigitbasi/debug-log-fix and squashes the following commits: 59129ed [Nezih Yigitbasi] PARQUET-311: Fix NPE when debug logging metadata Project: http://git-wip-us.apache.org/repos/asf/parquet-mr/repo Commit: http://git-wip-us.apache.org/repos/asf/parquet-mr/commit/89321a2d Tree: http://git-wip-us.apache.org/repos/asf/parquet-mr/tree/89321a2d Diff: http://git-wip-us.apache.org/repos/asf/parquet-mr/diff/89321a2d Branch: refs/heads/master Commit: 89321a2dee438328e75a11954e972175c78f0a2a Parents: 29283b7 Author: Nezih Yigitbasi Authored: Mon Jun 22 14:28:42 2015 -0700 Committer: Ryan Blue Committed: Mon Jun 22 14:28:42 2015 -0700 ---------------------------------------------------------------------- .../column/statistics/BinaryStatistics.java | 4 +-- .../converter/TestParquetMetadataConverter.java | 31 ++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/89321a2d/parquet-column/src/main/java/org/apache/parquet/column/statistics/BinaryStatistics.java ---------------------------------------------------------------------- diff --git a/parquet-column/src/main/java/org/apache/parquet/column/statistics/BinaryStatistics.java b/parquet-column/src/main/java/org/apache/parquet/column/statistics/BinaryStatistics.java index b2d9b55..6341f96 100644 --- a/parquet-column/src/main/java/org/apache/parquet/column/statistics/BinaryStatistics.java +++ b/parquet-column/src/main/java/org/apache/parquet/column/statistics/BinaryStatistics.java @@ -53,12 +53,12 @@ public class BinaryStatistics extends Statistics { @Override public byte[] getMaxBytes() { - return max.getBytes(); + return max == null ? null : max.getBytes(); } @Override public byte[] getMinBytes() { - return min.getBytes(); + return min == null ? null : min.getBytes(); } @Override http://git-wip-us.apache.org/repos/asf/parquet-mr/blob/89321a2d/parquet-hadoop/src/test/java/org/apache/parquet/format/converter/TestParquetMetadataConverter.java ---------------------------------------------------------------------- diff --git a/parquet-hadoop/src/test/java/org/apache/parquet/format/converter/TestParquetMetadataConverter.java b/parquet-hadoop/src/test/java/org/apache/parquet/format/converter/TestParquetMetadataConverter.java index b4f56fa..1a740fe 100644 --- a/parquet-hadoop/src/test/java/org/apache/parquet/format/converter/TestParquetMetadataConverter.java +++ b/parquet-hadoop/src/test/java/org/apache/parquet/format/converter/TestParquetMetadataConverter.java @@ -19,6 +19,7 @@ package org.apache.parquet.format.converter; import static java.util.Collections.emptyList; +import static org.apache.parquet.schema.MessageTypeParser.parseMessageType; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import static org.apache.parquet.format.CompressionCodec.UNCOMPRESSED; @@ -34,11 +35,19 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Random; import java.util.Set; import java.util.TreeSet; +import org.apache.parquet.column.statistics.BinaryStatistics; +import org.apache.parquet.hadoop.metadata.BlockMetaData; +import org.apache.parquet.hadoop.metadata.ColumnChunkMetaData; +import org.apache.parquet.hadoop.metadata.ColumnPath; +import org.apache.parquet.hadoop.metadata.CompressionCodecName; +import org.apache.parquet.hadoop.metadata.ParquetMetadata; import org.junit.Assert; import org.junit.Test; @@ -252,4 +261,26 @@ public class TestParquetMetadataConverter { } } + @Test + public void testNullFieldMetadataDebugLogging() throws NoSuchFieldException, IllegalAccessException, IOException { + MessageType schema = parseMessageType("message test { optional binary some_null_field; }"); + org.apache.parquet.hadoop.metadata.FileMetaData fileMetaData = new org.apache.parquet.hadoop.metadata.FileMetaData(schema, new HashMap(), null); + List blockMetaDataList = new ArrayList(); + BlockMetaData blockMetaData = new BlockMetaData(); + blockMetaData.addColumn(createColumnChunkMetaData()); + blockMetaDataList.add(blockMetaData); + ParquetMetadata metadata = new ParquetMetadata(fileMetaData, blockMetaDataList); + ParquetMetadata.toJSON(metadata); + } + + private ColumnChunkMetaData createColumnChunkMetaData() { + Set e = new HashSet(); + PrimitiveTypeName t = PrimitiveTypeName.BINARY; + ColumnPath p = ColumnPath.get("foo"); + CompressionCodecName c = CompressionCodecName.GZIP; + BinaryStatistics s = new BinaryStatistics(); + ColumnChunkMetaData md = ColumnChunkMetaData.get(p, t, c, e, s, + 0, 0, 0, 0, 0); + return md; + } }