Please, review the patch for https://jbs.oracle.com/bugs/browse/JDK-8019584

http://cr.openjdk.java.net/~jbachorik/8019584/webrev.00/

The reason for the failure is that the ObjectInputStream.readFields()
method does not throw CNFE as specified when encountering instances of
unknown in the object graph to be deserialized. Instead, it leaves the
fields in the default state which in this case is "null" and is not
valid. Hence, the deserialization validation fails.

Since the main cause is in the RMI code, has been there for very long
time and changing the behaviour there might have disrupting effects on
various 3rd party applications I decided to work around this problem in
the JMX code.

The workaround adds InvalidObjectException to the list of expected
exceptions when processing JMX notifications. It is treated the same way
as eg. CNFE - the exception is logged and the notification will be
reported as missing. This will resolve the problem on the JMX side.

Thanks,

-JB-

Reply via email to