[
https://issues.apache.org/jira/browse/ORC-313?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Quanlong Huang resolved ORC-313.
--------------------------------
Resolution: Fixed
Fix Version/s: 1.5.0
> Missing checks on SubType count of LIST, MAP and UNION types
> ------------------------------------------------------------
>
> Key: ORC-313
> URL: https://issues.apache.org/jira/browse/ORC-313
> Project: ORC
> Issue Type: Bug
> Components: C++, Java, Reader
> Affects Versions: 1.0.0, 1.1.2, 1.2.3, 1.3.4, 1.4.3
> Reporter: Quanlong Huang
> Assignee: Quanlong Huang
> Priority: Major
> Fix For: 1.5.0
>
> Attachments: ill_types.orc, no_subtypes_union.orc
>
>
> When converting proto::Type to TypeImpl, we need to check that LIST and MAP
> types have a correct number of subtypes. Otherwise, it will lead to later
> errors in the c++ reader.
> A file with ill types is attached.
> The java reader also has this problem and throws an IndexOutOfBoundsException
> immediately:
> {code}
> Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0
> at java.util.Collections$EmptyList.get(Collections.java:3212)
> at org.apache.orc.OrcProto$Type.getSubtypes(OrcProto.java:12642)
> at org.apache.orc.OrcUtils.convertTypeFromProtobuf(OrcUtils.java:506)
> at org.apache.orc.OrcUtils.convertTypeFromProtobuf(OrcUtils.java:515)
> at org.apache.orc.impl.ReaderImpl.<init>(ReaderImpl.java:386)
> at org.apache.orc.OrcFile.createReader(OrcFile.java:327)
> at org.apache.orc.tools.FileDump.getReader(FileDump.java:241)
> at org.apache.orc.tools.FileDump.printMetaDataImpl(FileDump.java:300)
> at org.apache.orc.tools.FileDump.printMetaData(FileDump.java:274)
> at org.apache.orc.tools.FileDump.main(FileDump.java:135)
> at org.apache.orc.tools.Driver.main(Driver.java:105)
> {code}
> We should also check the subtype count of UNION type. If its subtype_size ==
> 0, the 'counts' pointer used in UnionColumnReader::skip and
> UnionColumnReader::next will be null pointer. The attached file
> (no_subtypes_union.orc) can reproduce this.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)