RFR: 8019584 javax/management/remote/mandatory/loading/MissingClassTest.java failed in nightly against jdk7u45: java.io.InvalidObjectException: Invalid notification: null
Jaroslav Bachorik
jaroslav.bachorik at oracle.com
Mon Jul 15 01:41:10 PDT 2013
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-
More information about the serviceability-dev
mailing list