fraction = (fraction * 1000) / 0x100000000L;
fraction = (fraction > 0) ? fraction + 1 : 0;
long millisecs = (secsSince1970 * 1000) + fraction;
return new Date(millisecs);
}
<BUG>private List<Object> readArray(final Input rawInput, List<Character> types, int pos) {
</BUG>
int arrayLen = 0;
<BUG>while (types.get(pos + arrayLen).charValue() != ']') {
</BUG>
arrayLen++;

fraction = (fraction * 1000) / 0x100000000L;
fraction = (fraction > 0) ? fraction + 1 : 0;
long millisecs = (secsSince1970 * 1000) + fraction;
return new Date(millisecs);
}
private List<Object> readArray(final Input rawInput, final CharSequence types, int pos) {
int arrayLen = 0;
while (types.charAt(pos + arrayLen) != ']') {
