IBM Support

IJ22300: JAVA JIT: NEW OPTION TO PREVENT ALIASING PRIMITIVE BOX CLASSES FINAL FIELDS

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: N/A
    .
    Stack Trace: N/A
    .
    The JIT might propagate final field initialization values to
    future uses of the final field. This means that modification of
    the final field's value might not be visible to code executed
    after the modification occurs. Final fields can be modified
    using JNI and Unsafe APIs which breaks the java language
    guarantee that final fields cannot have their values changed
    after an initial value is assigned.
    

Local fix

  • With this APAR we are introducing an java command line option
    that can be used to prevent the JIT from assuming that primitive
    box class final fields are immutable.
    -Xjit:disableImmutableFieldAliasing
    This option is added to avoid problem while developers modify
    there code such that they avoid modifying primitive box class
    final fields.
    

Problem summary

  • When applications use JNI or Unsafe code to modify a primitive
    box classes final field the JIT might prevent that change from
    being visible by Java code. This is the result of the JIT
    optimizing the Java code to avoid unnecessary memory operations
    based the Java specification definition of the "final" keyword
    causing fields to be immutable after initial assignment.
    

Problem conclusion

  • A Java command line option was added that is used by the JIT to
    disable aliasing of primitive box class final fields.
    .
    This APAR will be fixed in the following Java Releases:
       8    SR6 FP7   (8.0.6.7)
    .
    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

    IJ22300

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    130

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2020-01-24

  • Closed date

    2020-01-30

  • Last modified date

    2020-01-30

  • 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":"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:
30 January 2020