[ https://issues.apache.org/jira/browse/PARQUET-2103?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17447455#comment-17447455 ]
Gabor Szadovszky commented on PARQUET-2103: ------------------------------------------- I think, we need to update [ParquetMetadata.toJSON|https://github.com/apache/parquet-mr/blob/master/parquet-hadoop/src/main/java/org/apache/parquet/hadoop/metadata/ParquetMetadata.java#L67-L71]. Jackson shall be able to be configured to not to look for getter methods but the private fields. I am not sure if it is a good idea or if it will work in every environment. Another option would be to refactor EncryptedColumnChunkMetaData to not to call "decrypt" for a getter but it might not worth the efforts. The easiest way would be to simply detect if the metadata contains encrypted data and do not log anything. I don't know how urgent might it be to log the metadata in case of debugging. > crypto exception in print toPrettyJSON > -------------------------------------- > > Key: PARQUET-2103 > URL: https://issues.apache.org/jira/browse/PARQUET-2103 > Project: Parquet > Issue Type: Bug > Components: parquet-mr > Affects Versions: 1.12.0, 1.12.1, 1.12.2 > Reporter: Gidon Gershinsky > Priority: Major > > In debug mode, this code > {{if (LOG.isDebugEnabled()) {}} > {{ LOG.debug(ParquetMetadata.toPrettyJSON(parquetMetadata));}} > {{}}} > called in > {{org.apache.parquet.format.converter.ParquetMetadataConverter.readParquetMetadata()}} > > _*for unencrypted files*_ > triggers an exception: > > {{Caused by: org.apache.parquet.crypto.ParquetCryptoRuntimeException: [id]. > Null File Decryptor }} > {{ at > org.apache.parquet.hadoop.metadata.EncryptedColumnChunkMetaData.decryptIfNeeded(ColumnChunkMetaData.java:602) > ~[parquet-hadoop-1.12.0jar:1.12.0]}} > {{ at > org.apache.parquet.hadoop.metadata.ColumnChunkMetaData.getEncodingStats(ColumnChunkMetaData.java:353) > ~[parquet-hadoop-1.12.0jar:1.12.0]}} > {{ at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > ~[?:?]}} > {{ at > jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > ~[?:?]}} > {{ at > jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > ~[?:?]}} > {{ at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]}} > {{ at > shaded.parquet.com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:689) > ~[parquet-jackson-1.12.0jar:1.12.0]}} > {{ at > shaded.parquet.com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:755) > ~[parquet-jackson-1.12.0jar:1.12.0]}} > {{ at > shaded.parquet.com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178) > ~[parquet-jackson-1.12.0jar:1.12.0]}} > {{ at > shaded.parquet.com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119) > ~[parquet-jackson-1.12.0jar:1.12.0]}} > {{ at > shaded.parquet.com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79) > ~[parquet-jackson-1.12.0jar:1.12.0]}} > {{ at > shaded.parquet.com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18) > ~[parquet-jackson-1.12.0jar:1.12.0]}} > {{ at > shaded.parquet.com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728) > ~[parquet-jackson-1.12.0jar:1.12.0]}} > {{ at > shaded.parquet.com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:755) > ~[parquet-jackson-1.12.0jar:1.12.0]}} > {{ at > shaded.parquet.com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178) > ~[parquet-jackson-1.12.0jar:1.12.0]}} > {{ at > shaded.parquet.com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serializeContents(IndexedListSerializer.java:119) > ~[parquet-jackson-1.12.0jar:1.12.0]}} > {{ at > shaded.parquet.com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:79) > ~[parquet-jackson-1.12.0jar:1.12.0]}} > {{ at > shaded.parquet.com.fasterxml.jackson.databind.ser.impl.IndexedListSerializer.serialize(IndexedListSerializer.java:18) > ~[parquet-jackson-1.12.0jar:1.12.0]}} > {{ at > shaded.parquet.com.fasterxml.jackson.databind.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:728) > ~[parquet-jackson-1.12.0jar:1.12.0]}} > {{ at > shaded.parquet.com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.serializeFields(BeanSerializerBase.java:755) > ~[parquet-jackson-1.12.0jar:1.12.0]}} > {{ at > shaded.parquet.com.fasterxml.jackson.databind.ser.BeanSerializer.serialize(BeanSerializer.java:178) > ~[parquet-jackson-1.12.0jar:1.12.0]}} > {{ at > shaded.parquet.com.fasterxml.jackson.databind.ser.DefaultSerializerProvider._serialize(DefaultSerializerProvider.java:480) > ~[parquet-jackson-1.12.0jar:1.12.0]}} > {{ at > shaded.parquet.com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:319) > ~[parquet-jackson-1.12.0jar:1.12.0]}} > {{ at > shaded.parquet.com.fasterxml.jackson.databind.ObjectWriter$Prefetch.serialize(ObjectWriter.java:1516) > ~[parquet-jackson-1.12.0jar:1.12.0]}} > {{ at > shaded.parquet.com.fasterxml.jackson.databind.ObjectWriter._writeValueAndClose(ObjectWriter.java:1217) > ~[parquet-jackson-1.12.0jar:1.12.0]}} > {{ at > shaded.parquet.com.fasterxml.jackson.databind.ObjectWriter.writeValue(ObjectWriter.java:1059) > ~[parquet-jackson-1.12.0jar:1.12.0]}} > {{ at > org.apache.parquet.hadoop.metadata.ParquetMetadata.toJSON(ParquetMetadata.java:68) > ~[parquet-hadoop-1.12.0jar:1.12.0]}} > {{ ... 23 more}} -- This message was sent by Atlassian Jira (v8.20.1#820001)