IBM Support

IZ81204: JAVA.UTIL.HASHMAP.PUTALL() DOESN'T INVOKE PUT() METHOD

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: N/A
    .
    Stack Trace: N/A
    .
    Given a test case <OSB>1<CSB>, IBMJDK6 fails while RI passes.
    <OSB>1<CSB> Test Case:
        public class MockHashMap extends HashMap {
            private boolean valid = false;
            public Object put(Object key, Object value) {
                valid = true;
                return null;
            }
            public boolean isValid() {
                return valid;
            }
        }
        public void testHashMap_putAll() {
            MockHashMap mockHashMap = new MockHashMap();
            HashMap hashMap = new HashMap();
            hashMap.put("key", "value");
            mockHashMap.putAll(hashMap);
            assertTrue(mockHashMap.isValid());
            assertEquals(0, mockHashMap.size());
        }
    

Local fix

Problem summary

  • Our code of HashMap.putAll() follows the spec. But we made a
    internal putImpl() method in HashMap, both putAll() and put()
    method of HashMap will invoke this common putImpl() for
    performance improvement. Customer's app strictly requires
    putAll() method must call put() method.
    

Problem conclusion

  • This defect will be fixed in:
    6.0.0 SR9
    .
    The java.util.HashMap.putAll() methods has been updated to
    prevent such a problem to occur.
    .
    To obtain the fix:
    Install build 20100803 or later
    

Temporary fix

Comments

APAR Information

  • APAR number

    IZ81204

  • 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

    2010-07-30

  • Closed date

    2010-08-06

  • Last modified date

    2010-08-06

  • 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 PSN

       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:
06 August 2010