IBM Support

IX90085: BAD_TYPECODE EXCEPTION WHEN READING META REPLY FOR A CLASS WITH SERIALIZABLE FIELD

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: When a class with a field serializable is
    marshaled between client and server having different versions of
    the class, a BAD_TYPECODE exception is thrown while reading the
    meta reply.
    When a class with a field serializable is marshalled between
    client and server having different versions of the class in a
    colocated scenario(multiple classloaders), a BAD_TYPECODE
    exception is thrown while reading the meta reply
    .
    Stack Trace: StackTrace 1
    -------------
    org.omg.CORBA.BAD_TYPECODE: kind of input stream is invalid
    vmcid: IBM  minor code: 28B  completed: No
     at
    com.ibm.rmi.corba.TypeCodeImpl.readTypeCode(TypeCodeImpl.java:15
    68)
     at
    com.ibm.rmi.iiop.CDRReader.fast_readAnyOpt(CDRReader.java:1062)
     at
    com.ibm.rmi.io.IIOPInputStream.readAny(IIOPInputStream.java:2259
    )
     at
    com.ibm.rmi.io.IIOPInputStream.readObjectField(IIOPInputStream.j
    ava:2224)
     at
    com.ibm.rmi.io.IIOPInputStream.inputClassFields(IIOPInputStream.
    java:1994)
     at
    com.ibm.rmi.io.IIOPInputStream.continueSimpleReadObject(IIOPInpu
    tStream.java:558)
     at
    com.ibm.rmi.io.IIOPInputStream.simpleReadObjectLoop(IIOPInputStr
    eam.java:528)
    ...................
    StackTrace 2
    ------------
    com.ibm.rmi.util.ProxyUtil copyObjects:205 P=213875:O=0:CT
    ORBRas<OSB>default<CSB>  org.omg.CORBA.MARSHAL: Unable to read
    value from underlying bridge : kind of input stream is invalid
    vmcid: IBM  minor code: 896  completed: No
     at com.ibm.rmi.iiop.CDRReader.read_value(CDRReader.java:1593)
     at
    com.ibm.rmi.iiop.ObjectCopierFactory$AbstractArrayCopier.doWork(
    ObjectCopierFactory.java:420)
     at
    com.ibm.rmi.iiop.ObjectCopierFactory$AbstractCopier.waitForCompl
    etion(ObjectCopierFactory.java:151)
     at com.ibm.rmi.util.ProxyUtil.copyObjects(ProxyUtil.java:202)
     at
    com.ibm.rmi.util.ProxyUtil.invokeWithClassLoaders(ProxyUtil.java
    :605)
     at
    com.ibm.CORBA.iiop.ClientDelegate.invoke(ClientDelegate.java:116
    5)
     at $Proxy0.echoObjects(Unknown Source)
     at
    _CollocatedInterface_Stub.echoObjects(_CollocatedInterface_Stub.
    java:879)
     at CollectionObjects.doTest(CollectionObjects.java:54)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessor
    Impl.java:45)
     at
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethod
    AccessorImpl.java:37)
     at java.lang.reflect.Method.invoke(Method.java:599)
     at
    CollocatedTest$CollocatedClass.client1(CollocatedTest.java:112)
     at CollocatedTest$CollocatedClass.run(CollocatedTest.java:59)
     at
    CollocatedTest$CollocatedClass.runTest(CollocatedTest.java:47)
     at CollocatedTest.main(CollocatedTest.java:33)
    Caused by: org.omg.CORBA.BAD_TYPECODE: kind of input stream is
    invalid  vmcid: IBM  minor code: 28B  completed: No
     at
    com.ibm.rmi.corba.TypeCodeImpl.readTypeCode(TypeCodeImpl.java:15
    70)
     at
    com.ibm.rmi.iiop.CDRReader.fast_readAnyOpt(CDRReader.java:1077)
     at
    com.ibm.rmi.io.IIOPInputStream.readAny(IIOPInputStream.java:2361
    )
     at
    com.ibm.rmi.io.IIOPInputStream.readObjectField(IIOPInputStream.j
    ava:2324)
     at
    com.ibm.rmi.io.IIOPInputStream.inputClassFields(IIOPInputStream.
    java:2089)
     at
    com.ibm.rmi.io.IIOPInputStream.inputObjectUsingFVD(IIOPInputStre
    am.java:1723)
     at
    com.ibm.rmi.io.IIOPInputStream.inputObjectFVD(IIOPInputStream.ja
    va:1668)
     at
    com.ibm.rmi.io.IIOPInputStream.readSerializable(IIOPInputStream.
    java:1165)
     at
    com.ibm.rmi.io.IIOPInputStream.simpleReadObjectInternal(IIOPInpu
    tStream.java:442)
     at
    com.ibm.rmi.io.IIOPInputStream.simpleReadObject(IIOPInputStream.
    java:478)
     at
    com.ibm.rmi.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:
    210)
     at com.ibm.rmi.iiop.CDRReader.read_value(CDRReader.java:1575)
     ... 16 more
    .
    

Local fix

  • Using passbyref option with single classloader policy will
    workaround the issue - Collocated scenario
    

Problem summary

  • The problem is caused when processing meta for a class
    containing a field of type Serilizable.
    

Problem conclusion

  • This defect will be fixed in:
    7.0.0 SR1
    6.0.1 SR2
    .
    The meta processing logic for classes with Serializable field is
    modified to resolve the issue.
    

Temporary fix

Comments

APAR Information

  • APAR number

    IX90085

  • Reported component name

    ORB

  • Reported component ID

    620700123

  • Reported release

    260

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-04-10

  • Closed date

    2012-04-10

  • Last modified date

    2012-04-10

  • 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

    ORB

  • Fixed component ID

    620700123

Applicable component levels

  • R260 PSY

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSC9HBB","label":"ORB"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"260","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
10 April 2012