IBM Support

PH38967: BUFFEROVERFLOWEXCEPTION CAUSES ACTIVATION SPECS TO STOP

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

  • If an endpointName, in the very case it is a String of length
    187, is written to the JFapByteBuffer 1st, along with 2 bytes
    for the length - that allocates a single data buffer of min size
    200 (it would allocate more if the requested length was > 200)
    so we have a 200 byte buffer with 189 bytes of data in it.  Next
    the WMQRAJFAPCommunicator writes the id, an int (ie 4 bytes),
    the JFapByteBuffer sees it has a data buffer with 11 bytes free
    so writes the bytes in that data buffer - there are now 193
    bytes used and 7 free.  Next it writes the craEpoch, a long
    which is of course 8 bytes - here the JFapByteBuffer.putLong
    should check it has 8 bytes left, see it only has 7 and allocate
    an extra 200 byte data buffer - but it only checks it has 4
    bytes left (the bug) so tries to write the 8 byte long into the
    7 remaining bytes - and that's why the BufferOverflowException
    occurs.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of IBM WebSphere Application      *
    *                  Server V9.0                                 *
    ****************************************************************
    * PROBLEM DESCRIPTION: BufferOverflowException can be thrown   *
    *                      in an ActivationSpec, causing the       *
    *                      ActivationSpec to stop.                 *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    The putter methods for adding data to a JFapByteBuffer check
    whether there is enough space for the new data to be added,
    and extend the buffer if required. These checks used hard-coded
    values for the length of each data type.
    An error meant that, when a long was being added, the buffer
    was only checked for 4 bytes of space instead of
    8. Consequently, when long data is being added to an almost
    full buffer, the check might incorrectly determine that there
    is enough space to add the data, resulting in
    a BufferOverflowException being thrown when the
    data is written.
    A trace is likely to show a call to JFapByteBuffer.putLong()
    just before the Exception is thrown.
    

Problem conclusion

Temporary fix

Comments

APAR Information

  • APAR number

    PH38967

  • Reported component name

    WEBSPHERE FOR Z

  • Reported component ID

    5655I3500

  • Reported release

    900

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2021-07-14

  • Closed date

    2022-01-18

  • Last modified date

    2022-01-18

  • 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

    WEBSPHERE FOR Z

  • Fixed component ID

    5655I3500

Applicable component levels

[{"Line of Business":{"code":"LOB45","label":"Automation"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SS7K4U","label":"WebSphere Application Server for z\/OS"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"900"}]

Document Information

Modified date:
19 January 2022