[ 
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-2a-server-receive.diff

Attached is a patch that addresses issue (2), when the server is receiving 
timestamps (or dates or times) from the client. The patch makes the server use 
the GMT timezone instead of the local timezone when it parses the timestamps, 
so that there are no holes in the range of valid values. With this patch, the 
repro still has one failure (because of issue 3 and 4), but now all the values 
are stored correctly in the database.

When running the regression tests, ParameterMappingTest fails because the new 
code path in the server triggers DERBY-4621. The 2a patch should therefore not 
be committed before DERBY-4621 has been solved. I'm still attaching the patch 
here and setting the patch available flag.

> 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: 10.5.3.0
>         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, 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.

Reply via email to