Fixes are available
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