IV09488: DATA CORRUPTION WHEN POPULATING A CONSTANT ARRAY

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 problem is only applicable to system Z. When
    setting all elements of a short, char or int array to a
    constant, the JIT might populate wrong data into the array, if
    the data has MSB='1' (or is a negative value). For example:
    public class arrayset
       {
       public static void main (String<OSB><CSB> args)
             {
             short<OSB><CSB> a = new short<OSB>2001<CSB>;
             for (int i = 0; i<2000; i++)
                {
                a<OSB>i<CSB> = -300;
                }
             for (int i = 0; i<2000; i++)
                {
                System.out.println(a<OSB>i<CSB>);
                }
             }
       }
    java
    "-Xjit:verbose,limit={arrayset.main*}(count=0,optLevel=hot)"
    arrayset
    ...
    -301
    -301
    -301
    -300
    -301
    -301
    -301
    -300
    ...
    .
    Stack Trace: N/A
    .
    

Local fix

  • adding the option to disable arrayset unrolling provides a
    workaround:  -Xjit:disableZArraySetUnroll
    however this might introduce some performance degradation.
    

Problem summary

  • The problem is caused by an incorrect sign extension of array
    data to be copied.
    

Problem conclusion

  • This defect will be fixed in:
    6.0.1 SR1
    7.0.0 SR1
    .
    The JVM has been updated to prevent the wrong sign extension of
    array elements
    .
    To obtain the fix:
    Install build 20111022 or later
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV09488

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    260

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2011-10-24

  • Closed date

    2011-10-26

  • Last modified date

    2011-10-26

  • 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

  • R260 PSY

       UP



Rate this page:

(0 users)Average rating

Add comments

Document information


More support for:

Runtimes for Java Technology
Just In Time (JIT) Compiler

Software version:

260

Reference #:

IV09488

Modified date:

2011-10-26

Translate my page

Machine Translation

Content navigation