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] Closed: (DERBY-4624) Broken logic for avoiding testing across midnight in TimestampArithTest
Date Wed, 19 May 2010 07:57:54 GMT

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

Knut Anders Hatlen closed DERBY-4624.
-------------------------------------

    Issue & fix info:   (was: [Patch Available])
       Fix Version/s: 10.7.0.0
          Resolution: Fixed

Committed revision 946079.

> 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
>             Fix For: 10.7.0.0
>
>         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.


Mime
View raw message