APAR status
Closed as program error.
Error description
Error Message: An ArrayIndexOutOfBounds exception is not thrown when a negative array index is used which should cause the exception to be thrown. Instead the array access will be performed which can cause unexpected behaviour and/or a crash. . Stack Trace: N/A . This problem can only happen on z Systems. The problem is more likely to happen when the Java command line option -Xjit:noResumableTrapHandler is used. Note that the -Xrs option implies this option.
Local fix
Problem summary
Under certain circumstances, the JIT compiler will generate Compare Logical instructions for checking ArrayIndexOutOfBounds conditions. When the JIT compiler determines that the array index is a constant value, the bounds check will use an instruction with a 16-bit unsigned immediate field to hold the index to compare against the array length. For array lengths larger than 2?15, the negative array index values would be incorrectly interpreted as valid indices, and no ArrayIndexOutOfBoundsExceptions are thrown. If -Xjit:noResumableTrapHandler or -Xrs JVM options are used, the JIT compiler will generate an instruction with an 8-bit unsigned immediate field, resulting in array lengths of larger than 2?7 to expose the incorrect behaviour.
Problem conclusion
The JIT compiler has been updated to recognize that a negative array index will always generate an ArrayIndexOutOfBounds exception thus preventing the problem. . This APAR will be fixed in the following Java Releases: 8 SR4 FP5 (8.0.4.5) . Contact your IBM Product's Service Team for these Service Refreshes and Fix Packs. For those running stand-alone, information about the available Service Refreshes and Fix Packs can be found at: https://www.ibm.com/developerworks/java/jdk/
Temporary fix
Comments
APAR Information
APAR number
IV95401
Reported component name
JIT
Reported component ID
620700124
Reported release
130
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2017-04-24
Closed date
2017-04-24
Last modified date
2017-04-24
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
JIT
Fixed component ID
620700124
Applicable component levels
R130 PSY
UP
[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSC9HBA","label":"Just In Time (JIT) Compiler"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"130","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
24 April 2017