RFR: 8002307 javax.management.modelmbean.ModelMBeanInfoSupport may expose internal representation by storing an externally mutable object
Jaroslav Bachorik
jaroslav.bachorik at oracle.com
Fri Oct 3 15:02:13 UTC 2014
This is a second take on fixing JDK-8002307.
The previous discussions are accessible as
* http://mail.openjdk.java.net/pipermail/jmx-dev/2013-May/000225.html
* http://mail.openjdk.java.net/pipermail/jmx-dev/2013-July/000280.html
* http://mail.openjdk.java.net/pipermail/jmx-dev/2013-September/000346.html
The fix assures the immutability by cloning the provided arrays in the
constructor and then cloning them again in the getters.
The constructors are fixed in the javax/management/MBeanInfo.java and
the arrays used in getters are cloned using an already existing
functionality in the same class.
javax/management/modelmbean/ModelMBeanInfoSupport.java is modified to
take advantage of extending javax/management/MBeanInfo.java and not to
store duplicate information
(attributes/operations/constructors/notifications arrays). The
deserialization routine is adjusted to reflect this and also to enforce
data consistency and backward compatibility.
Regtests and JCK tests were run successfully.
http://cr.openjdk.java.net/~jbachorik/8002307/webrev.05
Thanks,
-JB-
More information about the serviceability-dev
mailing list