Interesting.. I'll give a look in the afternoon
On Tue, Mar 10, 2015 at 8:56 PM, dong wang <[email protected]> wrote:
> HI yang, as the log above, it throws this exception from there:
> System.arraycopy(bytes, 0, returnValue, offset, bytes.length); and
> as debugged, the value of "bytes" is "10000-01-01", so length of "bytes" is
> 11, and the value of "returnValue" is "9999-12-31", whose length is 10,
> therefore, the exception is thrown out. what's more, when this exception,
> the parameter "id" passed to the following function is 3652427, then
> function getValueBytesFromIdImpl() will internally call
> getDateFromNumOfDaysSince0000() as below, and, the returned date is
> "10000-01-01", so, is it possible that there is something that we haven't
> taken it into consideration for function "getDateFromNumOfDaysSince0000()"?
>
> final protected int getValueBytesFromIdImpl(int id, byte[] returnValue, int
> offset) {
> String date = getValueFromId(id);
> byte bytes[];
> try {
> bytes = date.getBytes("ISO-8859-1");
> } catch (UnsupportedEncodingException e) {
> throw new RuntimeException(e); // never happen
> }
> System.arraycopy(bytes, 0, returnValue, offset, bytes.length);
> return bytes.length;
> }
>
>
> private Date getDateFromNumOfDaysSince0000(int n) {
> long millis = ((long) n - 719530) * 86400000;
> return new Date(millis);
> }
>