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

Reply via email to