IBM Support

IC72855: EXCEPTION WHEN SERIALIZING AND DESERIALIZING JMSOBJECTMESSAGE IN WEBSPHERE APPLICATION SERVER V7

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • A Message Driven Bean (MDB) running in WebSphere Application
    Server v7 receives an ObjectMessage from WebSphere
    MQ and the message is correctly read. After serializing and
    deserializing the message, a ClassNotFoundException is thrown.
    
    A stack trace of the Exception will look similar to:
    java.lang.ClassNotFoundException:com.example.package.
    CustomClass
    
    at java.lang.Class.forNameImpl(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at java.io.ObjectInputStream.resolveClass
    (ObjectInputStream.java:615)
    at java.io.ObjectInputStream.readNonProxyDesc
    (ObjectInputStream.java:1586)
    at java.io.ObjectInputStream.readClassDesc
    (ObjectInputStream.java:1507)
    at java.io.ObjectInputStream.readOrdinaryObject
    (ObjectInputStream.java:1743)
    at java.io.ObjectInputStream.readObject0
    (ObjectInputStream.java:1340)
    at java.io.ObjectInputStream.readObject
    (ObjectInputStream.java:362)
    at com.ibm.jms.JMSObjectMessage.readObject
    (JMSObjectMessage.java:208)
    ....
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users of the WebSphere Application Server who
    are using the V7 WebSphere MQ JMS client code and are attempting
    to deserialize ObjectMessages that contain a custom class as the
    payload.
    
    Platforms affected:
    All Distributed (iSeries, all Unix and Windows) +Java
    ****************************************************************
    PROBLEM SUMMARY:
    The problem arose because, when a serialized JmsObjectMessage
    was deserialized, the payload object was deserialized internally
    before being set in the newly recreated Message.
    
    If a suitable ClassLoader was not found at this early stage of
    internal processing, a ClassNotFoundException was thrown.
    
    The payload object is normally deserialized when the application
    thread calls ObjectMessage.getObject() and this thread can have
    access to more ClassLoaders than the internal thread that
    performs the deserialization of the Message itself.
    
    Depending on circumstances, the actual Exception
    thrown might be different, and have the ClassNotFoundException
    set as its cause.
    

Problem conclusion

  • The payload will now only be deserialized when the
    application calls the getObject() method on its own thread, not
    at the earlier stage where the classLoader had a reduced scope.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
                       v7.0
    Platform           Fix Pack 7.0.1.5
    --------           --------------------
    Windows            U200324
    AIX                U839183
    HP-UX (PA-RISC)    U839621
    HP-UX (Itanium)    U839626
    Solaris (SPARC)    U839622
    Solaris (x86-64)   U839628
    iSeries            tbc_p700_0_1_5
    Linux (x86)        U839623
    Linux (x86-64)     U839627
    Linux (zSeries)    U839624
    Linux (Power)      U839625
    
    The latest available maintenance can be obtained from
    'WebSphere MQ Recommended Fixes'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006037
    
    If the maintenance level is not yet available, information on
    its planned availability can be found in 'WebSphere MQ
    Planned Maintenance Release Dates'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006309
    ---------------------------------------------------------------
    

Temporary fix

Comments

APAR Information

  • APAR number

    IC72855

  • Reported component name

    WMQ WINDOWS V7

  • Reported component ID

    5724H7220

  • Reported release

    700

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2010-11-30

  • Closed date

    2010-12-31

  • Last modified date

    2010-12-31

  • 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

    WMQ WINDOWS V7

  • Fixed component ID

    5724H7220

Applicable component levels

  • R700 PSY

       UP

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSDEZSF","label":"IBM WebSphere MQ Managed File Transfer for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
31 March 2023