[
https://issues.apache.org/jira/browse/COMPRESS-326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14972416#comment-14972416
]
Stefan Bodewig commented on COMPRESS-326:
-----------------------------------------
I think I've tracked it down.
Traditionally Java's {{ZipEntry#getTime}} returned the {{astModifiedTime}} from
the archive entry's header directly - this is why we adjust the time to the
local time zone just like InfoZIP would do since the test archive has been
written by InfoZIP's zip.
Then came http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/rev/90df6756406f which
changes the logic of {{ZipEntry#getTime}} and now uses additional time fields
InfoZIP or Microsoft's Compressed Folders feature would use in order to get a
better result. I haven't tracked down which Java8 update has been the first
one to receive the patch.
I'll try to adjust the test.
> Fix threading issue in X5455_ExtendedTimestampTest test class (a test for
> COMPRESS-210)
> ---------------------------------------------------------------------------------------
>
> Key: COMPRESS-326
> URL: https://issues.apache.org/jira/browse/COMPRESS-326
> Project: Commons Compress
> Issue Type: Bug
> Reporter: Konstantin Kolinko
>
> The test for COMPRESS-210 is currently failing when Compress is built at
> Apache Gump.
> http://vmgump.apache.org/gump/public/commons-compress/commons-compress-test/index.html
> It says that the last success was on 2015-10-06T00:00:09,
> it started failing at 2015-10-06T12:00:09
> and as of now the failure state is persistent for 22 runs (which means ~11
> days).
> The failure:
> {noformat}
> [INFO]
> ------------------------------------------------------------------------
> [INFO] Building Apache Commons Compress 1.11-SNAPSHOT
> [INFO]
> ------------------------------------------------------------------------
> <...>
> Running org.apache.commons.compress.archivers.zip.X5455_ExtendedTimestampTest
> Tests run: 7, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.054 sec <<<
> FAILURE! - in
> org.apache.commons.compress.archivers.zip.X5455_ExtendedTimestampTest
> testSampleFile(org.apache.commons.compress.archivers.zip.X5455_ExtendedTimestampTest)
> Time elapsed: 0.027 sec <<< FAILURE!
> org.junit.ComparisonFailure: expected:<2105-01-01/0[0:00:02] +0000> but
> was:<2105-01-01/0[8:00:01] +0000>
> at org.junit.Assert.assertEquals(Assert.java:116)
> at org.junit.Assert.assertEquals(Assert.java:145)
> at
> org.apache.commons.compress.archivers.zip.X5455_ExtendedTimestampTest.testSampleFile(X5455_ExtendedTimestampTest.java:171)
> {noformat}
> Reviewing rhe code of the test class, its usage of `SimpleDateFormat
> DATE_FORMAT` field is wrong. The field is declared as "static". A
> SimpleDateFormat is not thread-safe, so it must not be shared between tests,
> as some testing configurations may run several tests in parallel.
> A simple fix will be to remove "static" from declaration of that field and
> its initialization block, so that each running instance of the test gets its
> own copy of SimpleDateFormat class.
> (I am not sure whether this bug is the actual cause of the test failure. I do
> not see any reconfigurations of test environment on 2015-10-06. *Update*:
> according to gump-general mailing list \[1], on Oct 06 the Java runtime used
> to run Gump was updated to the latest Java 8 release)
> \[1]
> http://mail-archives.apache.org/mod_mbox/gump-general/201510.mbox/%3C5613A448.8040109%40apache.org%3E
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)