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)

Reply via email to