[ https://issues.apache.org/jira/browse/HIVE-3253?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13688046#comment-13688046 ]
Ashutosh Chauhan commented on HIVE-3253: ---------------------------------------- [~thejas] Can you also test your patch through 0.23 profile? There are quite a few updates in .q.out files and we have tests which run only on 0.23 profile. If they didn't get updated for new property, they will be broken again. > ArrayIndexOutOfBounds exception for deeply nested structs > --------------------------------------------------------- > > Key: HIVE-3253 > URL: https://issues.apache.org/jira/browse/HIVE-3253 > Project: Hive > Issue Type: Bug > Components: Serializers/Deserializers > Affects Versions: 0.9.0, 0.10.0 > Reporter: Swarnim Kulkarni > Assignee: Thejas M Nair > Attachments: HIVE-3253.2.patch, HIVE-3253_moar_nesting.1.patch, > jsonout.hive > > > It was observed that while creating table with deeply nested structs might > throw this exception: > {code} > java.lang.ArrayIndexOutOfBoundsException: 9 > at > org.apache.hadoop.hive.serde2.lazy.LazyFactory.createLazyObjectInspector(LazyFactory.java:281) > at > org.apache.hadoop.hive.serde2.lazy.LazyFactory.createLazyObjectInspector(LazyFactory.java:263) > at > org.apache.hadoop.hive.serde2.lazy.LazyFactory.createLazyObjectInspector(LazyFactory.java:276) > at > org.apache.hadoop.hive.serde2.lazy.LazyFactory.createLazyObjectInspector(LazyFactory.java:263) > at > org.apache.hadoop.hive.serde2.lazy.LazyFactory.createLazyObjectInspector(LazyFactory.java:276) > at > org.apache.hadoop.hive.serde2.lazy.LazyFactory.createLazyObjectInspector(LazyFactory.java:263) > at > org.apache.hadoop.hive.serde2.lazy.LazyFactory.createLazyObjectInspector(LazyFactory.java:276) > at > org.apache.hadoop.hive.serde2.lazy.LazyFactory.createLazyObjectInspector(LazyFactory.java:263) > at > org.apache.hadoop.hive.serde2.lazy.LazyFactory.createLazyObjectInspector(LazyFactory.java:276) > at > org.apache.hadoop.hive.serde2.lazy.LazyFactory.createLazyStructInspector(LazyFactory.java:354) > {code} > The reason being that currently the separators array has been hardcoded to be > of size 8 in the LazySimpleSerde. > {code} > // Read the separators: We use 8 levels of separators by default, but we > // should change this when we allow users to specify more than 10 levels > // of separators through DDL. > serdeParams.separators = new byte[8]; > {code} > If possible, we should increase this size or at least make it configurable to > properly handle deeply nested structs. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira