[ https://issues.apache.org/jira/browse/KYLIN-1104?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
fengYu updated KYLIN-1104: -------------------------- Attachment: 0001-bytes-split-max-length-limit.patch > Long dimension value casue ArrayIndexOutOfBoundsException > --------------------------------------------------------- > > Key: KYLIN-1104 > URL: https://issues.apache.org/jira/browse/KYLIN-1104 > Project: Kylin > Issue Type: Bug > Reporter: fengYu > Assignee: Shaofeng SHI > Fix For: v1.3 > > Attachments: 0001-.patch, 0001-bug.patch, > 0001-bytes-split-max-length-limit.patch > > > I get ArrayIndexOutOfBoundsException while building cube, and the error is > caused by one dimension(I think measure can not be so long) value is longer > than 4096 bytes. > I check source code and find the reason: > 1、it specify max split length is 4096 when create BytesSplitter object in > setup. > 2、in BytesSplitter.split function which split all items in one row with > delimiter, and using System.arraycopy(bytes, offset, split.value, 0, length); > copy every item to a SplittedBytes object named split. and before this line , > it execute split.length = length; to set the split length. > 3、while executing the copy code, it throw ArrayIndexOutOfBoundsException > because the real item length is bigger than 4096! > 4、in mapper function, the exception will catched and execute > handleErrorRecord function to handle it, However, in this function it will > call use splits again(in toString function), ArrayIndexOutOfBoundsException > will throw again. > 5、There is not one catch this exception, which casue the mapper execute > failed. > That is all my situation and analysis, I will modify source code to continue > my job building and I will upload my patch later. -- This message was sent by Atlassian JIRA (v6.3.4#6332)