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

Knut Anders Hatlen updated DERBY-4624:
--------------------------------------

            Assignee: Knut Anders Hatlen
    Issue & fix info: [Patch Available]

> Broken logic for avoiding testing across midnight in TimestampArithTest
> -----------------------------------------------------------------------
>
>                 Key: DERBY-4624
>                 URL: https://issues.apache.org/jira/browse/DERBY-4624
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions: 10.6.1.0
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>            Priority: Minor
>         Attachments: remove_calendar.diff
>
>
> TimestampArithTest's decorator has this code to avoid failures in case the 
> test starts close to midnight:
>                               /*
>                                * Make sure that we are not so close to 
> midnight that TODAY
>                                * might be yesterday before we are finished 
> using it.
>                                */
>                               while (calendar.get(Calendar.HOUR) == 23
>                                               && 
> calendar.get(Calendar.MINUTE) >= 58) {
>                                       try {
>                                               Thread.sleep((60 - 
> calendar.get(Calendar.SECOND)) * 1000);
>                                       } catch (InterruptedException ie) {
>                                               // ignore it
>                                       }
>                               }
> There are at least three problems with this code:
> 1) (calendar.get(Calendar.HOUR) == 23) never evaluates to true, because 
> calendar.get(Calendar.HOUR) returns values in the range 0-11. 
> Calendar.HOUR_OF_DAY should be used instead.
> 2) If the current time is after 23:58 and before 23:59, the code sleeps until 
> 23:59, the test will wait until 23:59 before it starts, making it even more 
> likely that it will cross midnight while running.
> 3) The code is executed after the Calendar object has been initialized, so if 
> this code is ever triggered and waits until after midnight, the TODAY field 
> is guaranteed to be yesterday when the test starts executing.

-- 
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