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);
}