IZ96848: JAVA6 JIT - EXECUTING THE WRONG CODE WHEN TWO IMPLEMENTATIONS EX IST
Fixes are available
Closed as program error.
Error Message: Executing the wrong implementation of an abstract method. Possible symptoms are varied: 1) Crash in JIT compiled code or the interpreter 2) In correct behaviour of a Java application 3) Unexpected exception 4) Crash in JIT runtime routines 5) Crash in GC . Stack Trace: N/A . The problem only exist in Java6 and requires that a class is loaded during JIT compilation of a method where an assumption was made based on the fact that only one implementation of an abstract method exists. The new class that was loaded contains a 2nd implementation of that method invalidating the assumption before the JIT compilation was completed.
The problem can be avoided by using the following Java command line option: -Xjit:disableInnerPreexistence,disableInvariantArgumentPreexiste nce,disableRedundantMonitorElimination
When a class is loaded that invalidates a compile time assumption before the compilation has completed, the JIT will abort the compilation leaving a inconsistent state in some class metadata that may cause future JIT compilations to make invalid assumptions about the class hierarchy.
This defect will be fixed in: 6.0.0 SR9 FP3 6.0.1 GA FP1 . The JIT was modified so that aborted compilations will do proper class metadata maintenance before exiting the compiler. . To obtain the fix: Install build 20110323 or later
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