IV22238: REFLECTIVE FIELD MODIFICATION LEADS TO INCORRECT METHOD CALLS
Closed as program error.
Error Message: When a base class B is extended by a subclass C and one of its public methods M is overridden, a call to C.M can incorrectly execute B.M, when the following conditions are met: - a third class defines F as a private static field of type B; - the field is modified by external code, via reflection, to point to an object of type C; - F.M is called in a hot loop. . Stack Trace: N/A .
This problem can be avoided by setting the JVM command-line option -Xjit:disablelookahead.
The JIT compiler attempted to optimize the hot call by devirtualizing the call to M, but its analysis resulted in an incorrect type for the private static field F when it could be modified via reflection.
This defect will be fixed in: 6.0.1 SR3 7.0.0 SR2 6.0.0 SR11 5.0.0 SR14 . The JIT compiler has been updated to perform the type analysis correctly.
Reported component name
JAVA 5 JIT
Reported component ID
Last modified date
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fixed component name
JAVA 5 JIT
Fixed component ID
Applicable component levels