Bruno P. Kinoshita created LANG-1337: ----------------------------------------
Summary: Fix test failures in IBM JDK 8 Key: LANG-1337 URL: https://issues.apache.org/jira/browse/LANG-1337 Project: Commons Lang Issue Type: Bug Components: lang.* Affects Versions: 3.5 Environment: java version "1.8.0" Java(TM) SE Runtime Environment (build pxa6480sr4fp6-20170518_02(SR4 FP6)) IBM J9 VM (build 2.8, JRE 1.8.0 Linux amd64-64 Compressed References 20170516_348050 (JIT enabled, AOT enabled) J9VM - R28_20170516_1905_B348050 JIT - tr.r14.java_20170516_348050 GC - R28_20170516_1905_B348050_CMPRSS J9CL - 20170516_348050) JCL - 20170516_01 based on Oracle jdk8u131-b11 Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T05:41:47+13:00) Maven home: /opt/maven Java version: 1.8.0, vendor: IBM Corporation Java home: /home/kinow/Development/java/ibm-java-x86_64-80/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "4.4.0-78-generic", arch: "amd64", family: "unix" git sha 551101299da7f75ea5478db1a6bc194963e0ac34 Reporter: Bruno P. Kinoshita Assignee: Bruno P. Kinoshita Priority: Minor Fix For: 3.6 >From the 3.6 thread RC2. We had issues in the release. Two tests failed. One >of these tests happened on IBM JDK 8, and was related to time zones. Gary >Gregory quickly pointed that the very latest IBM JDK 8 released did not had >this issue. Indeed, I grabbed a JDK 8 from IBM and had this issue, and then after looking for the latest version, I had only one test failing. This test in question was ToStringBuilderTest#testReflectionHierarchyArrayList. Debugging the test in Eclipse, with the JDK pointing to IBM JDK 8 (and taking care to not let the Eclipse maven integration change it), there is a part of the code that receives an ArrayList object to create a String with reflection. In Oracle JDK 7, the object contains the default 10 empty positions, and thus the generated String is. {noformat} java.util.ArrayList@761a4a3d[elementData={<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>,<null>},size=0,modCount=0] {noformat} But with IBM JDK 8, the ArrayList is empty, nada, and then I get the following in the Eclipse debugger. {noformat} java.util.ArrayList@761a4a3d[elementData={},size=0,modCount=0] {noformat} The test is - as commented in LANG-727 - a bit flaky. However, the expected string assumes ArrayList will have an initial 10 null values. So the pull request in this issue simply creates an ArrayList with 10 initial capacity :-) a naïve approach, but that I believe fixes this test. The changes in the pull request linked to this issue have all tests passing with the following set-ups: {noformat} Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T05:41:47+13:00) Maven home: /opt/maven Java version: 1.7.0_80, vendor: Oracle Corporation Java home: /usr/lib/jvm/java-7-oracle/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "4.4.0-78-generic", arch: "amd64", family: "unix" --- java version "1.7.0_80" Java(TM) SE Runtime Environment (build 1.7.0_80-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode) Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T05:41:47+13:00) Maven home: /opt/maven Java version: 1.8.0_131, vendor: Oracle Corporation Java home: /usr/lib/jvm/java-8-oracle/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "4.4.0-78-generic", arch: "amd64", family: "unix" --- java version "1.8.0_131" Java(TM) SE Runtime Environment (build 1.8.0_131-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode) Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T05:41:47+13:00) Maven home: /opt/maven Java version: 1.8.0, vendor: IBM Corporation Java home: /home/kinow/Development/java/ibm-java-x86_64-80/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "4.4.0-78-generic", arch: "amd64", family: "unix" --- java version "1.8.0" Java(TM) SE Runtime Environment (build pxa6480sr4fp6-20170518_02(SR4 FP6)) IBM J9 VM (build 2.8, JRE 1.8.0 Linux amd64-64 Compressed References 20170516_348050 (JIT enabled, AOT enabled) J9VM - R28_20170516_1905_B348050 JIT - tr.r14.java_20170516_348050 GC - R28_20170516_1905_B348050_CMPRSS J9CL - 20170516_348050) JCL - 20170516_01 based on Oracle jdk8u131-b11 {noformat} -- This message was sent by Atlassian JIRA (v6.3.15#6346)