Hi,
The Statement.setTimestamp() implementation has a bug in it for half
hour timezones west of GMT. Newfoundland is such a location with a
timezone offset of GMT -3:30. An example of a bogus string (calc
includes Daylight savings time offset) follows:
2003-07-15 10:43:35.000000-020-30
The problem is in here:
int l_minos = l_offset - (l_houros * 60);
if (l_minos != 0)
{
if (l_minos < 10)
sbuf.append('0');
sbuf.append(l_minos);
}
l_minos is going to be negative so 1. a zero is going to erroneously be
inserted into the stream and 2. the neg sign is going to be included in
sbuf.append(l_minos).
A possible fix is to modify the code like so:
if (l_minos != 0)
{
l_minos = Math.abs(l_minos);
if (l_minos < 10)
sbuf.append('0');
sbuf.append(l_minos);
}
Best regards,
Brent
--
Brent Eagles
Principal Engineer - IONA | Making Software Work Together TM
Email: mailto:brent.eagles@iona.com
Phone: (709) 738-3725 x18
WWW: http://www.iona.com/