IBM Support

PI86995: errors captured in SIB logs within output of ObjectMessage.toString()

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Invocations of SIB JMS ObjectMessage.toString() may capture
    deserialization errors concerning the object payload held by
    the message, as the implementation tries to fully deserialize
    the payload in order to determine information about the
    payload's class.
    
    This full deserialization is unnecessary and potentially bad
    for performance, and the captured errors, such as:
    
    CWSIA0122E: An exception occurred deserializing a message,
    exception: java.lang.ClassNotFoundException.
    
    ... are misleading when captured in SIB trace information.
    

Local fix

  • n/a
    

Problem summary

  • ****************************************************************
    * USERS AFFECTED:  All users of SIB JMS in IBM WebSphere       *
    *                  Application Server                          *
    ****************************************************************
    * PROBLEM DESCRIPTION: ObjectMessage.toString() attempts       *
    *                      full deserialization of payload, may    *
    *                      present spurious errors in output.      *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    SIB implementation of JMS ObjectMessage.toString() attempts
    full derserialization of the message's payload to determine /
    present the payload's class name.
    This full deserialization is both excessively costly (if the
    payload is large) and runs the risk of causing deserialization
    errors, if the method invocation is from a context which
    doesn't know of the payload's type.
    (For example, a messaging engine on a server should not need
    any reference to the class that a client places as payload in
    an Object Message).
    These errors then would cause unnecessary confusion when
    captured in trace statements making use of
    ObjectMessage.toString().
    

Problem conclusion

  • The fix is to use a specialized ObjectInputStream to
    interrogate the serialized payload to determine (and output)
    the ObjectStreamClass for the outermost object in the payload,
    ceasing the deserialization process at that point, avoiding the
    overhead and possibility of errors in deserialization of the
    remaining data.
    
    The fix for this APAR is currently targeted for inclusion in
    fix pack 8.5.5.14 and 9.0.0.9.
    Please refer to the Recommended Updates page for delivery
    information:
    http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
    

Temporary fix

Comments

APAR Information

  • APAR number

    PI86995

  • Reported component name

    WEBS APP SERV N

  • Reported component ID

    5724H8800

  • Reported release

    850

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-09-07

  • Closed date

    2018-06-20

  • Last modified date

    2018-06-20

  • 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

    WEBS APP SERV N

  • Fixed component ID

    5724H8800

Applicable component levels

  • R850 PSY

       UP

  • R900 PSY

       UP

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

Document Information

Modified date:
28 April 2022