fengYu created KYLIN-1104:
-----------------------------
Summary: Long dimension value casue ArrayIndexOutOfBoundsException
Key: KYLIN-1104
URL: https://issues.apache.org/jira/browse/KYLIN-1104
Project: Kylin
Issue Type: Bug
Reporter: fengYu
Fix For: v1.0, v1.1
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 change 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)