RFR 8129215: com.sun.jmx.mbeanserver.Introspector may provide results inconsistent with the JavaBeans Introspector

Daniel Fuchs daniel.fuchs at oracle.com
Fri Jun 19 13:50:15 UTC 2015

Hi guys,

I believe there's a difference between Attribute names, and navigation
into complex attributes.

At the MBean level attribute names are case sensitive.
At Attribute level (= within an attribute) I believe it follows
the Bean patterns (like for instance the mapping of complex
MXBean attribute types to CompositeData).
A property of an Attribute (as in MemoryUsage.used) is not itself
an Attribute - but a bean property.

A careful reading of the JMX 1.4 spec should hopefully make it possible
to validate that ;-)


-- daniel

On 19/06/15 14:05, Jaroslav Bachorik wrote:
> On 19.6.2015 13:44, Alan Bateman wrote:
>> On 19/06/2015 12:38, Jaroslav Bachorik wrote:
>>> Both the j.b.Introspector.getReadMethod() and the
>>> SimpleIntrospector.getReadMethod() are used only from
>>> c.s.j.m.Introspector.elementFromComplex() method and only to resolve
>>> the getter for a complex attribute.
>>> So, any change in the SimpleIntrospector will not affect the rest of
>>> the JMX system.
>>> Given this statement in the Monitoring javadocs
>>> (https://docs.oracle.com/javase/8/docs/api/javax/management/monitor/package-summary.html)
>>> "If the above rules do not produce a value, and if introspection, as
>>> if by calling Introspector.getBeanInfo, for the class of v
>>> (v.getClass()) identifies a property with the name e, then x is the
>>> result of reading the property value."
>>> I would strongly propose to adjust the SimpleIntrospector to closely
>>> follow the j.b.Introspector functionality.
>> I added the SimpleIntrospector and also adjusted the above wording in
>> the monitor package description to make it possible to have JMX in a
>> compact Profile of Java SE that didn't have java.beans.
>> The intention was that the SimpleIntrospector works like the beans
>> Introspector. So I agree this is the right thing to do but we should
>> create a bug for the issue that Daniel brings up.
> I'm not sure there is an issue here. The monitoring api attribute names
> seem to be governed by different rules than the MBean attribute names.
> This change relates to the monitoring api only and brings the
> implementation up to the what is specified in the javadoc.
> -JB-
>> -Alan.

More information about the serviceability-dev mailing list