JMX 1.1 Maintenance Release
Here is the list of modifications accepted for this Maintenance release.Also provided:
- the list of modifications committed for JMX 1.5 (JSR 160)
- the list of modifications delayed to a later version
- the list of submitted problems not beeing bugs
Notes
- The Specification, RI and TCK have been impacted and updated.- The "What's New" chapter in the Specification lists the changes done in the Specification document.
- A Release Notes document is provided, listing all changes.
Main Changes
- JMX 1.0 did not specify completely the serialized form of JMX classes that implement the Serializable interface.JMX 1.1 does specify this completely.
The specification is not completely compatible with the form used by the Reference Implementation in JMX 1.0.
With the RI in JMX 1.1, if the property "jmx.serial.form" has the value "1.0", the old serial form is used.
- JMX 1.0 had some sensitive global variables that were accessible without permission checking.
This could allow untrusted code to interfere with trusted code.
JMX 1.1 defines a new permission, MBeanServerPermission, which is required before accessing these variables.
This is used for fixing security holes.
- The TCK has been extended to validate JMX on JDK 1.4.
There are now 2 signature files, one for JDK 1.3, another for JDK 1.4.
- For stability, ModelMBean code has been reworked by Sun Microsystems.
Optional features present in the previous version are not supported anymore, only the full specification is implemented.
Please send comments to:
jmx-spec-comments@sun.com
ACCEPTED:
| Number: | Synopsis | By: |
| 1 | Bug: Open MBean fixed RI and TCK | Sun Microsystems |
| 5 | Bug: query with ":" not equivalent to query with "<defaultDomain>:" | Franck Hamelin |
| 14 | Bug: DynamicMBean class loading is not consistent with other bean loading | David Grigglestone (code provided) |
| 17 | Bug: possible to call getter and setter using invoke() | Simone Bordet |
| 18 | Bug: incomplete test to detect dynamic MBean | Simone Bordet |
| 22 | Bug: Repository class package protected, should be public | Rickard Oberg |
| 24 | Bug: Repositories not pluggable as RepositorySupport is created by MBeanServerImpl | Rickard Oberg |
| 28 | Bug: flag not reseted in DefaultLoaderRepository | Rickard Oberg |
| 29 | Bug: incorrect serialization | Eamonn McManus |
| 30 | Bug: incorrect source field in a Notification | Simone Bordet |
| 33 | Bug: unregistering a NotificationBroadcaster MBean does not remove its listeners | Maciej Szefler |
| 35 | Bug: security hole in DefaultLoaderRepository | Simone Bordet, Eamonn McManus |
| 36 | Bug: inconsistency in the spec regarding signature of removeNotificationListener of MBeanServer | Eamonn McManus |
| 40 | Bug: bug in ModelMBeanOperationInfo createDescriptor () method | Rickard Oberg |
| 41 | Bug: RequiredModelMBean.invoke uses Class.forName | Rickard Oberg |
| 42 | Bug: RequiredModelMBean.setAttributes() hangs | Rickard Oberg |
| 48 | Bug: inconsistency in field naming in ModelMBeanOperationInfo | Saikat Ghosh |
| 51 | Bug: incomplete spec regarding the behavior of GaugeMonitor | Simon Nunn |
| 52 | Bug: getAttributes in RequiredModelMBean returns the list of java.lang.String instead of list of javax.management.Attribute | Denis Stark |
| 53 | Bug: exception if there are no notification listeners with ModelMBean.setAttribute() | Denis Stark |
| 54 | Bug: exception if "null" used as attribute name on addAttributeChangeNotificationListener | Denis Stark |
| 55 | Bug: in modelmbean's descriptors, for an operation the returned value is cached. | Frederic Giloux |
| 56 | Bug: MBeanServerImpl not capable of correctly supporting multiple registrations for the same listener instance | Maciej Szefler |
| 59 | Bug: typo in examples: "demostrate" | Alexander Osterloh |
| 61 | Bug: JMX spec should forbid attribute names that are not valid Java identifiers | Jeff Haynie |
| 62 | Bug: security hole in MBeanServerFactory allowing anybody to access to a MBeanServer | Hans Hrasna |
| 63 | Bug: NullPointerException that occurs when viewing an "MBeanView" HTML page | Paul Canavese |
| 64 | Bug: javax.management.Notification "source" poorly defined | Eamonn McManus |
| 68 | Bug: use of Class.forName() in RoleInfo | Arra Avakian |
| 70 | Bug: NotificationBroadcaster.removeNotificationListener() method should have a "name" parameter (same for NotificationBroadcasterSupport) | Joe Conti |
| 71 | Bug: no handback parameter in add/removeNotificationListener() method of NotificationBroadcaster and NotificationBroadcasterSupport. | Joe Conti |
| 73 | Bug: bug in RequiredModelMBean code | Carlos Quiroz |
| 74 | Bug: Spec not clear about being able to change the MBeanInfo of a DynamicMBean at runtime |
Chuck Johnson |
| 75 | Bug: problem with jmx1_0.sig file with JDK 1.4 | Sandeep Shrivastava |
| 77 | Bug: NotCompliantMBeanException with an MBean interface extending 2 interfaces with the same method | Manish Sethi |
COMMITTED FOR JMX 1.5
| Number: | Synopsis: | By: |
| 2 |
RFE: Connector terminology to be discarded for Adaptor |
Sun Microsystems |
| 3 | Bug: problem when registering the same notificationlistener for several broadcasters | Manish Sethi |
| 13 | Bug: MBeanServerImpl addNotificationListener cast failures | David Grigglestone (code provided) |
| 15 | Bug: Class.forName is used | Rickard Oberg |
| 16 | Bug: add addClassLoader method into JMX DefaultLoaderRepository | Simone Bordet |
| 21 | Bug: Metadata cache memory leak as never flushed | Rickard Oberg |
| 31 | Bug: incorrect prototype of removeNotificationListener in NotificationBroadcaster | Simone Bordet |
| 37 | Bug: DynamicMBean interface method needs to throw exceptions | Yves Joan |
| 46 | Bug: have a 3rd parameter, the handback object, in the removeNotificationListener() method | Maciej Szefler |
| 47 | Bug: NullPointerException in RmiConnectorClient.setOperationContext() with null OperationContext | Eamonn McManus |
| 66 | Bug: JMX spec unclear about support of special caracters (*,=?) in ObjectNames | Christophe Ebro |
| 69 | Bug: Timer.removeNotifications(String type) doesn't interrupt TimerAlarmClock thread | Vladimir Vasil |
| 72 | Bug: class loading issue in MBeanServerImpl as it is using isInstanceOf() | Vladimir Blagojevic |
DELAYED
| Number: | Synopsis | By: |
| 4 | RFE: missing method getConstructor in ModelMBeanInfo | Simone Bordet |
| 7 | RFE: have separate interface and implementation for MBeanServer and MBeanServerFactory | Manish Sethi |
| 8 | RFE: add a method setMBeanServer() to MBeanServer interface to set a secure MBS | Burt Wagner |
| 9 | RFE: divide MBeanServer in 2 parts, an interface and a part providing the methods | Rickard Oberg |
| 10 | RFE: wildcard support in notification filter | David Grigglestone |
| 11 | RFE: standardize a factory interface for clients to obtain remote client interfaces | David Grigglestone |
| 12 | RFE: parameters & return values should be Serializable | David Grigglestone |
| 19 |
Bug: empty try/catch blocks => on-going during coding |
Rickard Oberg |
| 20 | RFE: MBeanServerImpl should use caching in invoke() | Rickard Oberg |
| 23 | RFE: use of primitive class as parameter to be replaced by use of primitive types | Rickard Oberg |
| 25 | RFE: use of wrong collection classes, as Vector and HashTable, instead of ArrayList and HashMap | Rickard Oberg |
| 26 |
Bug: check() method in MLet should be protected, not
private |
Rickard Oberg |
| 27 | RFE: use of inefficient loader list in DefaultLoaderRepository | Rickard Oberg |
| 32 | RFE: ModelMBean.sendNotification() should not throw
an exception when no listeners are registered |
Maciej Szefler |
| 34 | RFE: specify symetric add/remove*Listener methods in MBeanServer, NotificationBroadcaster and ModelMBeanNotificationBroadcaster |
Simone Bordet |
| 38 |
Bug: issue with get/setAttributes() prototypes |
Christophe Ebro |
| 39 | RFE: stop enforcing XMBean name for MBean interface, but have some StandardMBean class and standard MBean class extending it | Eamonn McManus |
| 43 | RFE: extends MBeanServerFactory to specify which kind of MBeanServer has to be created (not MBeanServerImpl necessarly) | Christophe Ebro |
| 44 | RFE: extends RmiConnectorServer to allow implementation of RMI over SSL | Burt Wagner |
| 45 | RFE: remove constraint of having MBean interface and MBean class in the same package | Raja |
| 49 | RFE: use XML descriptor to create ModelMBeans on the fly | Carlos Quiroz |
| 50 | RFE: HTMLAdapter to use setAttribute() instead of setAttributes() | Denis Stark |
| 57 |
Bug: when no CODEBASE element is specified in the
M-Let file, the RI was improperly attempting to use the full path to the
M-Let file as a base URL from which to load the JAR file. |
Steve Perry |
| 58 | RFE: lack of support for DynamicMBeans that reside in different class loader namespaces | David Grigglestone (code provided) |
| 60 | RFE: remove test of compliance for class referenced in RoleInfo (no need to be a MBean) -> any type of object allowed | Christophe Ebro |
| 67 | RFE: The HTML adaptor does not support complex types and recursivity | Simon Vienot |
| 76 |
Bug: MLet preRegister method does not set the mlet's
object name correctly if the object name supplied to the method is null |
Steven Adams |
| 79 | RFE: reference the Grinder as the JMX Instrumentation Conformance Test Tool | David Grigglestone |
NOT A BUG
| Number: | Synopsis: | By: |
| 6 | Bug: constructor of TimerNotification is package, should be public | Manish Sethi |
| 65 | Bug: Problems adding a remote notification listener unless userData is populated | Shanliang Sjiang |
| 78 | Bug: null string not equivalent to null for ObjectName | Christophe Ebro |