Three dates are created in succession: (1) `startDate` on MetaTag:103, (2) 
`startTime` on HtmlConfiguration:265, and `date`
on MetaTag:95. If dates (1) and (3) are equal, we then conclude that (2) must 
be the same as (1) and (3). If I read the intent correctly, this implication 
warrants the conditional logic on MetaTag:96.

This looks reasonable, provided we are not concerned with other date sorcery. 
Maybe one of these days we could switch to the more modern java.time API. Looks 
good to me.

-Pavel

> On 15 Jan 2020, at 00:23, Jonathan Gibbons <jonathan.gibb...@oracle.com> 
> wrote:
> 
> Please review a fix for a problem that occurs when a test is run across 
> midnight.
> 
> Although it is difficult to confirm the root cause, and equally difficult to 
> test, the root cause is believed to be a static final instance of 
> java.util.Calendar that is used to obtain the date written into the generated 
> files, and which is subsequently verified by tests. When javadoc is run 
> multiple times in the same JVM, as will occur when running the MetaTag.java 
> test, the static final Calendar may be initialized to a time that is outside 
> the range checked by the test.
> 
> The fix is to replace the static instance by a non-static instance created in 
> HtmlConfiguration.
> 
> The fix is noreg-hard, because it can only be fully tested by running within 
> milliseconds of midnight. It's remarkable that this has actually occurred 
> multiple times in productio build/test runs.
> 
> -- Jon
> 
> 
> JBS: https://bugs.openjdk.java.net/browse/JDK-8223536
> Webrev: http://cr.openjdk.java.net/~jjg/8223536/webrev/
> 

Reply via email to