db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-4582) Timestamps inserted with GMT calendar are 1 hour later when subsequently read with GMT calendar (Server Mode Only).
Date Mon, 26 Apr 2010 12:30:32 GMT

     [ https://issues.apache.org/jira/browse/DERBY-4582?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Knut Anders Hatlen updated DERBY-4582:

    Attachment: derby-4582-4a-client-receive.diff

Here's a patch to address issue (4), derby-4582-4a-client-receive.diff.

The patch makes the client driver use the specified calendar object
when parsing the values received from the server. With this patch, the
original repro runs cleanly, and so does all the test cases in
DaylightSavingTest. I am currently running the rest of the regression

More details about the changes:

M       java/client/org/apache/derby/client/am/CrossConverters.java

- Changed some method signatures to allow passing Calendar objects
  further down.

- Made date_valueOf(), time_valueOf() and timestamp_valueOf() use a
  calendar when parsing the strings

M       java/client/org/apache/derby/client/am/Cursor.java

- Made the getters take a calendar and pass it to the parsing methods
  in am.DateTime instead of passing an instance of the default

M       java/client/org/apache/derby/client/am/ResultSet.java
M       java/client/org/apache/derby/client/am/CallableStatement.java

- Passed the calendar from getDate, getTime, getTimestamp to the
  getters in am.Cursor

M       java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/_Suite.java

- Enabled DaylightSavingTest as part of suites.All

> Timestamps inserted with GMT calendar are 1 hour later when subsequently read with GMT
calendar (Server Mode Only).
> -------------------------------------------------------------------------------------------------------------------
>                 Key: DERBY-4582
>                 URL: https://issues.apache.org/jira/browse/DERBY-4582
>             Project: Derby
>          Issue Type: Bug
>          Components: Network Client
>    Affects Versions:
>         Environment: Windows XP Professional Version 2002 Service Pack 3,  Central Standard
Time Zone (America/Chicago)
>            Reporter: Keith Kruse
>            Assignee: Knut Anders Hatlen
>         Attachments: calendar.diff, derby-4582-1a-client-send.diff, derby-4582-2a-server-receive.diff,
derby-4582-3a-server-send.diff, derby-4582-4a-client-receive.diff, DerbyTest.java, junit.diff,
junit.diff, upd-rs-test.diff
> This issue only appears to happen in Network Server/Client mode.  Embedded mode does
not have the issue.
> My timezone is American/Chicago.  Saving timestamps with values for the 6 hours prior
to DST start are being read back in as values 1 hour later than written.  (I believe the issue
happens on the write because values written in Network Server/Client mode and read in Embedded
mode are incorrect, while values written and read in Embedded mode are corect.)
> Values between 3/13/2010 - 20:00 CST and 3/14/2010 - 02:00 CST will return timstamps
1 hour off.  The "setTimestamp" method is being passed a GMT calendar with the timestamp:
> I have a complete test class I can attach, but here is a summary:
> private final TimeZone gmtTZ = TimeZone.getTimeZone("GMT");
> private final Calendar gmtCal = Calendar.getInstance(gmtTZ);
> ...
> String sql = "INSERT INTO app.dst_test (id, gmt_timestamp, milli_time) VALUES(?,?,?)";
> String sql2 = "SELECT * from app.dst_test where id=?";
> ...
> ps.setTimestamp(2, ts, gmtCal);
> ...
> Timestamp tsRead = rs.getTimestamp("gmt_timestamp", gmtCal);
> ...

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message