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
The fix for this APAR is targeted for inclusion in fix pack 9.0.5.11 and 8.5.5.21. For more information, see 'Recommended Updates for WebSphere Application Server': https://www.ibm.com/support/pages/node/715553
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