IBM Support

IX90134: WHILE MARSHALLING CLASSNOTFOUNDEXCEPTION IS THROWN FOR CERTAIN P ROXY CLASSES.

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Error Message: java.rmi.MarshalException: CORBA
    MARSHAL 0x4942f896 No; nested exception is:
    
    org.omg.CORBA.MARSHAL: Unable to read value from underlying
    bridge :
    Unable to read value from underlying bridge :
    ClassNotFoundException
    a.b.c.$Proxy29  vmcid: IBM  minor code: 896  completed: No
    .
    Stack Trace: Caused by: java.lang.ClassNotFoundException:
    a.b.c.$Proxy29
     at
    com.ibm.rmi.util.RepositoryId.loadClass(RepositoryId.java:676)
    
     at
    com.ibm.rmi.util.RepositoryId.checkClassCache(RepositoryId.java:
    645)
     at
    com.ibm.rmi.util.RepositoryId.getClassFromType(RepositoryId.java
    :
    634)
    
     at
    com.ibm.rmi.iiop.CDRReader.fast_read_value(CDRReader.java:1699)
    
     ... 13 more
    .
    

Local fix

Problem summary

  • Proxy objects are generated with package name prepended from
    Java 6 SR12 onwards.
    I.e. com.sun.proxy.$Proxy29 with Java 6 SR12 onwards and
    $Proxy29 with older release.
    For Java 6.0.1 its SR 5
    For Java 7 its SR 4
    For Java 7.0.1 its since GA.
    This lead to CNFE while serializing proxy objects. Orb code have
    been modified to fix the issue.
    

Problem conclusion

  • This APAR will be fixed in the following Java Releases:
       6    SR16      (6.0.16.0)
       6 R1 SR8       (6.1.8.0)
       7    SR7       (7.0.7.0)
       7 R1 SR1       (7.1.1.0)
    .
    Whether the class is of type proxy is determined by
    Proxy.isProxyClass() and while serialization backward
    compatibility is ensured with JDK generating proxy objects
    without the package prepended to them.
    Without this APAR  Proxy object serialization will work
    1. Between sender and receiver if the proxy object does not have
    a package name specified.
    2. If at sender side the proxy object does not have a package
    name specified, however it can have the package name specified
    at the receiver side.
    It will fail with CNFE for proxy Object, If at sender the proxy
    object has a package name specified, and not at the receiver.
    With this APAr Proxy object serialization will work  -
    1. Between sender and receiver if the proxy object does not have
    a package name specified.
    2. Between sender and receiver if the proxy objects have a
    package name specified.
    3. If at sender, the proxy object does not have a package name
    specified, however it can have the package name specified at the
    receiver.
    It will fail with CNFE for proxy Object, If at sender the proxy
    object has a package name specified, and not at the receiver.
    Also this fix needs to be applied on all JVMs (e.g Server,
    client, Naming Service)
    

Temporary fix

Comments

APAR Information

  • APAR number

    IX90134

  • Reported component name

    ORB

  • Reported component ID

    620700123

  • Reported release

    600

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2014-01-20

  • Closed date

    2014-01-27

  • Last modified date

    2014-04-30

  • 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

  • R600 PSY

       UP

  • 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":"6.0","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
30 April 2014