IBM Support

IJ42205: JAVA JIT, INCORRECT RETURN FROM CLASS.ISARRAY()

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: The return value from Class.isArray() is false
    even when being called against an array class.
    .
    Stack Trace: N/A
    .
    The problem can occur on any platform running the J9 VM.
    The issue must involve a call to Class.isArray()
    The issue is mostly likely to occur when:
    - Using the "Type" interface
    - Casting between "Class" and "Type"
    Other scenarios are possible, but it must involve a variable
    holding a Class where the application is behaving incorrectly
    based on the class type in the variable when calling
    Class.isArray().
    

Local fix

  • The problem is caused by the JIT value propagation optimization
    therefore the issue can be avoided by disabling that
    optimization using the following java command line parameter:
    -Xjit:disableLocalVP,disableGlobalVP
    You can also use the following option to target the effects to a
    specific method compilation and therefore minimize the
    performance impact:
    -Xjit{pkg/class.method*}(disableLocalVP,disableGlobalVP)
    Where "pkg/class.method" is the full method name for the method
    which is triggering the issue. Limiting to one method in this
    way will very likely result in no noticeable performance impact.
    

Problem summary

  • The JIT would remove some code after incorrectly converting a
    class variable into a constant which would allow the JIT to make
    a incorrect compile time decision that a code path could not
    execute and therefore could be removed.
    

Problem conclusion

  • The JIT was modified so that it would not incorrectly convert a
    class variable into a constant.
    .
    This APAR will be fixed in the following Releases:
    .
    IBM SDK, Java Technology Edition
       8    SR7 FP20  (8.0.7.20)
    .
    Contact your IBM Product's Service Team for these Service
    Refreshes and Fix Packs.
    For those running stand-alone, information about the available
    maintenance can be found at:
               https://www.ibm.com/support/pages/java-sdk
    

Temporary fix

Comments

APAR Information

  • APAR number

    IJ42205

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    130

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2022-08-30

  • Closed date

    2022-09-14

  • Last modified date

    2022-09-14

  • 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

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSNVBF","label":"Runtimes for Java Technology"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"130","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
14 September 2022