[
https://issues.apache.org/jira/browse/KYLIN-1104?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15086775#comment-15086775
]
fengYu commented on KYLIN-1104:
-------------------------------
upload patch for kylin 2.0-rc, but I find in kylin-2.0, BytesSplitter.split()
is not called while building cube anymore.
> 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)