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