RFR 8129215: com.sun.jmx.mbeanserver.Introspector may provide results inconsistent with the JavaBeans Introspector
jaroslav.bachorik at oracle.com
Mon Jun 22 10:06:21 UTC 2015
On 19.6.2015 15:50, Daniel Fuchs wrote:
> 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 ;-)
I can't find anything about the complex data properties in the JMX 1.4
spec no matter how carefully I read.
The only place that deals with how the complex data property getters are
to be resolved is in the monitoring package javadoc.
> -- 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
>>>> "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.
More information about the serviceability-dev