APAR status
Closed as program error.
Error description
If a class is defined within another class and is not defined as static, then there is a reference to the enclosing class from the nested class. When the nested object is serialized, the enclosing class is not being serialized. Therefore, during deserialization, the reference to the enclosing class is null. This behavior can lead to NullPointerException exceptions when accessing methods or non-static fields from the enclosing class. The ArrayBlockingQueue is an example of such a class that has encountered this problem; for example: [11/12/13 12:39:35:442 GMT+05:30] 000000ca LogSequenceIm W CWOBJ0006W: An exception occurred: com.ibm.websphere.objectgrid.ObjectGridRuntimeException: java.io.IOException: An exception occurred during java serialization - null. The class was <class_name> at com.ibm.ws.objectgrid.xdf.XDFSerializerPlugin.throwRuntimeExcept ion(XDFSerializerPlugin.java:285) at com.ibm.ws.objectgrid.xdf.XDFSerializerPlugin.serializeDataObjec t(XDFSerializerPlugin.java:264) at com.ibm.ws.objectgrid.plugins.io.dataobject.values.ValueDataImpl .autoSerialize(ValueDataImpl.java:234) at com.ibm.ws.objectgrid.plugins.io.dataobject.values.ValueDataImpl .checkBufferAndSerialize(ValueDataImpl.java:156) at com.ibm.ws.objectgrid.plugins.io.dataobject.values.ValueDataImpl .isIndirectHeapBuffer(ValueDataImpl.java:149)
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: Applications with enclosing classes * * that run with data grids, which have XIO * * and COPY_TO_BYTES maps. * **************************************************************** * PROBLEM DESCRIPTION: A class type that is defined within * * an enclosing object is serialized * * but the enclosing object is not being * * serialized. * **************************************************************** * RECOMMENDATION: * **************************************************************** If a class is defined within another class and is not defined as static, then there is a reference to the enclosing class from the nested class. When the nested object is serialized, the enclosing class is not being serialized. Therefore, when deserialization occurs, the reference to the enclosing class is null. This behavior can lead to NullPointerException exceptions when accessing methods or non-static fields from the enclosing class. The ArrayBlockingQueue is an example of such a class that has encountered this problem.
Problem conclusion
A code change to also serialize the enclosing class has been made to resolve this problem. The data in the grid must be re-created with an updated client, if this problem is encountered.
Temporary fix
Comments
APAR Information
APAR number
PI12310
Reported component name
WS EXTREME SCAL
Reported component ID
5724X6702
Reported release
860
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt
Submitted date
2014-02-21
Closed date
2014-03-03
Last modified date
2014-03-03
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
WS EXTREME SCAL
Fixed component ID
5724X6702
Applicable component levels
R860 PSY
UP
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSTVLU","label":"WebSphere eXtreme Scale"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"860","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
03 March 2014