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)

Reply via email to