From: | "Hari" <hkodungallur(at)gmail(dot)com> |
---|---|
To: | pgsql-jdbc(at)postgresql(dot)org |
Subject: | JDK5 and TimeTest |
Date: | 2006-08-18 19:02:07 |
Message-ID: | 1155927727.169145.64490@m73g2000cwd.googlegroups.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
Hello,
The TimeTest (jdbc2) fails for the tests with timezone while running
the postgresql-jdbc tests using JDK5. This is using pgsql-jdbc version
8.0.311 and postgresql version 8.0.6.
I was wondering whether someone in the group has enountered the same
and if there is a fix. I am just beginning to debug this and I have a
feeling that it may be because the Calendar implementation JDK5 seems
very different. Any ideas?
Thanks very much!
-Hari
SpikeSource Inc.
http://developer.spikesource.com
----------------------
Where it fails (org/postgresql/test/jdbc2/TimeTest.java):
==> The time is set in testSetTime (this works):
...
...
ps.setObject(1, "5:1:2-03", java.sql.Types.TIME);
assertEquals(1, ps.executeUpdate());
ps.setObject(1, "23:59:59+11", java.sql.Types.TIME);
assertEquals(1, ps.executeUpdate());
...
...
==> in timeTest method, the above time is accessed and it fails:
...
...
// If we're checking for timezones.
if (testSetTime)
{
assertTrue(rs.next());
t = rs.getTime(1);
assertNotNull(t);
java.sql.Time tmpTime = java.sql.Time.valueOf("5:1:2");
int localoffset =
java.util.Calendar.getInstance().getTimeZone().getRawOffset();
if
(java.util.Calendar.getInstance().getTimeZone().inDaylightTime(tmpTime))
{
localoffset += 60 * 60 * 1000;
}
int Timeoffset = 3 * 60 * 60 * 1000;
tmpTime.setTime(tmpTime.getTime() + Timeoffset +
localoffset);
assertEquals(makeTime(tmpTime.getHours(),
tmpTime.getMinutes(), tmpTime.getSeconds()), t); // <=== fails here
...
...
The error message is:
expected:<00:01:02> but was:<05:01:02>
junit.framework.AssertionFailedError: expected:<00:01:02> but
was:<05:01:02> at
org.postgresql.test.jdbc2.TimeTest.timeTest(TimeTest.java:275) at
org.postgresql.test.jdbc2.TimeTest.testSetTime(TimeTest.java:201)
A simple Calendar code like this shows two different output under JDK
1.4 and JDK5:
import java.util.Calendar;
class TestCalendar {
public static void main(String[] args) {
Calendar c = Calendar.getInstance();
System.out.println(c.toString());
}
}
(Execute it and look at the difference in the SimpleTimeZone object
within the Calendar object. They look entirely different).
From | Date | Subject | |
---|---|---|---|
Next Message | Thomas Kellerer | 2006-08-20 12:17:14 | Small problem with special characters |
Previous Message | James Im | 2006-08-18 16:09:58 | Re: SQL query never ends |