Skip to main content

IV19965: JVM INCORRECTLY REMOVED A CONDITION CHECK WHEN COMPARING TO MIN OR MAX INTEGER


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 Java JIT compiler might remove a comparison
    of an integer variable by mistake if it dominates (or is
    dominated by) a comparison of the same integer variable
    against the minimum or maximum integer value. This leads to
    incorrect control flow in the program and could result in a
    variety of associated symptoms such as segmentation fault,
    incorrect output, or hang.
    .
    Stack Trace: N/A
    .
    The following Java code illustrates the problem:
    
    if (i <= 0x7fffffff)  // always true
      {
      if (i < 0)          // sometimes removed by the JIT
        System.out.print("input < 0");
      }
    else
      System.out.print("should never get here");
    
    When the JIT compiler malfunctions in this case, it could remove
    the (i < 0) check, and cause the program to always print "input
    < 0" even if the variable i is positive.
    

Local fix

  • The -Xjit:disableAndSimplification option can be used as a
    workaround. Note that a small performance degradation might
    occur as this disables some compiler optimizations.
    

Problem summary

  • The problem is caused by an incorrect overflow/underflow check
    in the Java  JIT compiler.
    

Problem conclusion

  • This defect will be fixed in:
    6.0.1 SR2
    7.0.0 SR1
    .
    The JIT compiler has been updated to resolve the problem
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV19965

  • Reported component name

    JIT

  • Reported component ID

    620700124

  • Reported release

    260

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-04-20

  • Closed date

    2012-04-20

  • Last modified date

    2013-04-15

  • 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

Copyright and trademark information

IBM, the IBM logo and ibm.com are trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and trademark information" at www.ibm.com/legal/copytrade.shtml.

Rate this page:


(0 users)Average rating

Add comments

Document information

Runtimes for Java Technology

Just In Time (JIT) Compiler


Software version:
260


Reference #:
IV19965


Modified date:
2013-04-15

Translate my page

Content navigation