Edgar Molina created AXIS2-5923:
-----------------------------------
Summary: Broken build in JDK1.8u172
Key: AXIS2-5923
URL: https://issues.apache.org/jira/browse/AXIS2-5923
Project: Axis2
Issue Type: Bug
Reporter: Edgar Molina
h1. Background
The 1st of April 2018, Namibia changed their time zone and they don't observe
DST anymore, they changed from _Western African Time (WAST)_ to _Central
African Time (CAST)_, this change was rolled out in JDK 1.8u161 (Search for
tzdata2017c
[here|http://www.oracle.com/technetwork/java/javase/tzdata-versions-138805.html],
and check the database in
[wikipedia|https://en.wikipedia.org/wiki/List_of_tz_database_time_zones]).
The Axis2 code in the ConverterUtil
(java/org/apache/axis2/databinding/utils/ConverterUtil.java) creates a Calendar
object which is historically aware (returns the date offsets for the date that
is being set, in other words returns that in Feb 2007, Namibia had DST), then
pulls the raw offset from the time zone, which returns the current offset (no
DST) and then sets it to the calendar again.
This discrepancy causes that the calendar is off by one hour this time of the
year:
{noformat}
setting time zone to Africa/Windhoek
testing with TimeZone Central African Time
uses daylight time: false
we are in daylight time: false
testValue ==> 2007-02-15T14:54:29
calendar ==> 2007-02-15T13:54:29+02:00 <---- HERE
back ==> 2007-02-15T14:54:29.000+03:00{noformat}
h1. Proposed Design
We can default the test date time zone to GMT+1 as WAST used to be or to a
different country in this TZ. It seems that this test is very outdated as
Namibia hasn't been GMT+1 for a while and currently there is no GMT+1 that
observes DST in the southern hemisphere.
Therefore:
Update the offending test to switch from "Africa/Windhoek" to "Africa/Tunis"
(capital of Tunisia) to fix the broken build.
{panel:title=Build Execution}
{noformat}
[INFO]
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running org.apache.axis2.databinding.utils.BeanUtilTest
[INFO] Tests run: 18, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.418 s
- in org.apache.axis2.databinding.utils.BeanUtilTest
[INFO] Running org.apache.axis2.databinding.utils.ConverterUtilTest
[ERROR] Tests run: 12, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.204
s <<< FAILURE! - in org.apache.axis2.databinding.utils.ConverterUtilTest
[ERROR]
testConvertToDateTime(org.apache.axis2.databinding.utils.ConverterUtilTest)
Time elapsed: 0.027 s <<< FAILURE!
junit.framework.ComparisonFailure: expected:<2007-02-15T1[4]:54:29> but
was:<2007-02-15T1[3]:54:29>
at junit.framework.Assert.assertEquals(Assert.java:100)
at junit.framework.Assert.assertEquals(Assert.java:107)
at junit.framework.TestCase.assertEquals(TestCase.java:269)
at
org.apache.axis2.databinding.utils.ConverterUtilTest.internalTestConvertToDateTime(ConverterUtilTest.java:385)
at
org.apache.axis2.databinding.utils.ConverterUtilTest.testConvertToDateTime(ConverterUtilTest.java:165)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at junit.framework.TestCase.runTest(TestCase.java:176)
at junit.framework.TestCase.runBare(TestCase.java:141)
at junit.framework.TestResult$1.protect(TestResult.java:122)
at junit.framework.TestResult.runProtected(TestResult.java:142)
at junit.framework.TestResult.run(TestResult.java:125)
at junit.framework.TestCase.run(TestCase.java:129)
at junit.framework.TestSuite.runTest(TestSuite.java:252)
at junit.framework.TestSuite.run(TestSuite.java:247)
at
org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
at
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:365)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:272)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:236)
at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:159)
at
org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:386)
at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:323)
at
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:143)
[INFO] Running org.apache.axis2.databinding.utils.MultirefHelperTest
[INFO] Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.01 s -
in org.apache.axis2.databinding.utils.MultirefHelperTest
[INFO] Running org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderTest
[INFO] Tests run: 22, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 s
- in org.apache.axis2.databinding.utils.reader.ADBXMLStreamReaderTest
[INFO]
[INFO] Results:
[INFO]
[ERROR] Failures:
[ERROR]
ConverterUtilTest.testConvertToDateTime:165->internalTestConvertToDateTime:385
expected:<2007-02-15T1[4]:54:29> but was:<2007-02-15T1[3]:54:29>
[INFO]
[ERROR] Tests run: 56, Failures: 1, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:19 min
[INFO] Finished at: 2018-07-12T14:22:28-05:00
[INFO] Final Memory: 31M/254M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-surefire-plugin:2.20:test (default-test) on
project axis2-adb: There are test failures.
{noformat}
{panel}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]