IV22237: 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 SR13FP2 . The JIT compiler has been updated to perform the type analysis correctly.
Reported component name
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
Fixed component ID
Applicable component levels