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

Knut Anders Hatlen reassigned DERBY-5172:
-----------------------------------------

    Assignee: Knut Anders Hatlen

The test uses explicit timezones, which is why it fails even if it has passed 
daylight savings time in the local timezone.

A timestamp is passed to a stored procedure with an explicit timezone (using 
setTimestamp(int,Timestamp,Calendar)). The procedure simply copies the 
timestamp from an input parameter to an output parameter. The test then reads 
the timestamp using an explicit timestamp (getTimestamp(int,Calendar)), but not 
necessarily the same timezone that was used when passing it to the procedure.

The test converts the timestamp between the two timezones before comparing 
them. However, Derby does not convert the timestamps directly from one timezone 
to the other in this case. When the timestamp is inside the stored procedure, 
it is actually in the local timezone. So the conversion is tz1 -> local 
timezone -> tz2. Around the time one of the timezones switch to DST, that 
conversion may be an hour off compared to a direct tz1 -> tz2 conversion.

I'll update the test to use the same conversion as Derby does.
                
> testTimeAndDateWithCalendar (jdbcapi.CallableTest) fails intermittently with 
> AssertionFailedError: hour expected: differs from actual.
> --------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-5172
>                 URL: https://issues.apache.org/jira/browse/DERBY-5172
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions: 10.5.3.2, 10.7.1.4
>         Environment: IBM jvms 1.5 (SR12 FP3) and 1.6 (SR9 FP1), Suse Linux 
> and Windows XP
>            Reporter: Myrna van Lunteren
>            Assignee: Knut Anders Hatlen
>            Priority: Minor
>              Labels: derby_triage10_10
>         Attachments: failing-timestamp.diff
>
>
> I've seen the following stack trace, for instance on 3/26/2011: 
> http://people.apache.org/~myrnavl/derby_test_results/v10_7/windows/testlog/ibm16/1085854-suites.All_diff.txt
> 1) 
> testTimeAndDateWithCalendar(org.apache.derbyTesting.functionTests.tests.jdbcapi.CallableTest)junit.framework.AssertionFailedError:
>  hour expected:<2> but was:<3>
>       at 
> org.apache.derbyTesting.functionTests.tests.jdbcapi.CallableTest.assertSameTime(CallableTest.java:504)
>       at 
> org.apache.derbyTesting.functionTests.tests.jdbcapi.CallableTest.assertSameTimestamp(CallableTest.java:521)
>       at 
> org.apache.derbyTesting.functionTests.tests.jdbcapi.CallableTest.testTimeAndDateWithCalendar(CallableTest.java:456)
>       at 
> org.apache.derbyTesting.functionTests.tests.jdbcapi.CallableTest.testTimeAndDateWithCalendar(CallableTest.java:412)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
>       at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:109)
>       at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
>       at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
>       at junit.extensions.TestSetup.run(TestSetup.java:16)
> And another example, from
> http://people.apache.org/~myrnavl/derby_test_results/v10_5/windows/testlog/ibm16/1085628-suites.All_diff.txt:
> 1) 
> testTimeAndDateWithCalendar(org.apache.derbyTesting.functionTests.tests.jdbcapi.CallableTest)junit.framework.AssertionFailedError:
>  hour expected:<18> but was:<17>
>       at 
> org.apache.derbyTesting.functionTests.tests.jdbcapi.CallableTest.assertSameTime(CallableTest.java:512)
>       at 
> org.apache.derbyTesting.functionTests.tests.jdbcapi.CallableTest.assertSameTimestamp(CallableTest.java:529)
>       at 
> org.apache.derbyTesting.functionTests.tests.jdbcapi.CallableTest.testTimeAndDateWithCalendar(CallableTest.java:464)
>       at 
> org.apache.derbyTesting.functionTests.tests.jdbcapi.CallableTest.testTimeAndDateWithCalendar(CallableTest.java:412)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
>       at 
> org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:109)
>       at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
>       at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
>       at junit.extensions.TestSetup.run(TestSetup.java:23)
>       at 
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
>       at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
>       at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
>       at junit.extensions.TestSetup.run(TestSetup.java:23)
>       at 
> org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
>       at junit.extensions.TestDecorator.basicRun(TestDecorator.java:22)
>       at junit.extensions.TestSetup$1.protect(TestSetup.java:19)
>       at junit.extensions.TestSetup.run(TestSetup.java:23)
> As this is happening on two different code lines and on both linux and 
> windows and I've recently updated the jvms, this could be a jvm issue, but 
> that needs to be verified.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to