JDK-6288100 : jmx interop regression starting Mustang b37 when Server is over Mustang and Client over Tiger
  • Type: Bug
  • Component: core-svc
  • Sub-Component: javax.management
  • Affected Version: 6
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2005-06-20
  • Updated: 2017-05-16
  • Resolved: 2005-12-21
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6
6 b63Fixed
Related Reports
Relates :  
Relates :  
Description
The getMBeanInfo call fails if and only if:
- Server runs over Mustang build 37 or over
- Client runs over Tiger (used Update 5 build 2)

The tnameserv has been started with Tiger.
The stack trace is stored in file client.out.
It starts that way:

Jun 20, 2005 6:08:41 PM com.sun.corba.se.impl.encoding.CDRInputStream_1_0 read_value
WARNING: "IOP00810257: (MARSHAL) Could not find class"
org.omg.CORBA.MARSHAL:   vmcid: SUN  minor code: 257 completed: Maybe
	at com.sun.corba.se.impl.logging.ORBUtilSystemException.couldNotFindClass(ORBUtilSystemException.java:7756)

BUT all goes fine if:
- Server runs over Tiger and Client over Mustang
- Server and Client run both over Tiger or both over Mustang
- a Mustang build 36 is used for Server when Client is over Tiger

==> that interoperability regression started with Mustang b37. 

In order to reproduce, use the attached zip file that contains all java and class files and follow the steps as listed:
        In a first shell, do:
        tnameserv -ORBInitialPort 9999
        
        In a second shell, do:
        java Server
        
        In a third shell, do:
        java Client
###@###.### 2005-06-20 16:43:30 GMT

Comments
EVALUATION Need to overwrite the method "readObject" and "writeObject" for the classes MBeanInfo and MBeanFeatureInfo: the new private variable "descriptor" added since b37 will not be serialized/deserialized in the default way, but in a specially way.
26-10-2005

EVALUATION The problem is that iiop failed to deserialize the class MBeanInfo, look at the class com.sun.corba.se.impl.encoding.CDRInputStream_1_0, java, the method "getClassFromString" returns null, that means no class is found for the MBeanInfo class. Since Mustang build 37 the class MBeanInfo has been updated with Description: 6204469: Add Descriptor to all types of MBean ###@###.### 2005-07-11 13:04:35 GMT
11-07-2005