Summary
-------
Remove JMX Serialization compatibility with very old JMX releases (1.0, 1.1, 1.2), which are from before JMX was an integrated part of the JDK.
Problem
-------
Various JMX classes are serializable, but unlike most serializable classes, they compute a `serialVersionUID` value instead of defining that value as a constant. The reason for this is for serialization compatibility with JMX 1.0. These classes used certain SVUID values in 1.0 and different values in 1.1 and later; thus, by default, 1.0 was serialization incompatible with 1.1 and later.
There is a switch to change the behavior. If the `jmx.serial.form` system property is set to "1.0" these classes will use the "old" SVUID values corresponding to those used in 1.0; otherwise they will use the "new" SVUID values for 1.1 and later. This enables the JMX running in a given JVM to be compatible with 1.0 or with 1.1-and-later, but not both.
Additionally, in JMX 1.2, field names are forced to lower-case before being written, contradicting the specification, and the `jmx.serial.form` property enabled bug-compatibility with that (see src/java.management/share/classes/javax/management/modelmbean/DescriptorSupport.java).
This compatibility logic adds unnecessary complexity to many classes and their serialization operations.
Solution
-------
Simply remove the feature. It is reasonable to remove this compatibility courtesy given that it is around 20 years old. There is no reason for a JMX application running JDK 24 to be compatible with JMX distributions from before JMX was integrated into JDK 5 (released in September 2004).
Specification
-------
The System property `jmx.serial.form` will be ignored.
Github PR: https://github.com/openjdk/jdk/pull/20856