IBM Support

IV52627: JAVA.UTIL.HASHMAP.GET() RETURNS INCORRECT VALUE WHEN INTEGER KEY S ARE USED

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 HashMap.get() returns the old value  after updating  the
    entry directly using HashMap.Entry.setValue() when the HashMap
    contains lot of entries and integer key is used.
    

Local fix

  • - Avoid using HashMap.Entry.setValue() to update the entry. Use
    HashMap.put() instead.
    OR
    - Set the capacity of Hashmap 25% more than the maximum entry
    size.
    

Problem summary

  • HashMap uses an internal cache when the entry size exceed
    certain threshold. When application update the entry using
    HashMap.Entry.setValue(), the cache is not updated. Hence,
    further get will return the old value of the entry.
    

Problem conclusion

  • This APAR will be fixed in the following Java Releases:
       6    SR16      (6.0.16.0)
       6 R1 SR8       (6.1.8.0)
    .
    The JDK has been updated to avoid the cache with HashMap.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IV52627

  • Reported component name

    JAVA CLASS LIBS

  • Reported component ID

    620700130

  • Reported release

    600

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2013-11-28

  • Closed date

    2014-01-27

  • Last modified date

    2014-04-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

    JAVA CLASS LIBS

  • Fixed component ID

    620700130

Applicable component levels

  • R600 PSY

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCVQ3Y","label":"Java Class Libraries"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"6.0","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
30 April 2014