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

Jaroslav Bachorik jaroslav.bachorik at oracle.com
Fri Jun 19 11:38:05 UTC 2015


On 19.6.2015 12:23, Alan Bateman wrote:
>
>
> On 19/06/2015 10:56, Jaroslav Bachorik wrote:
>> :
>>
>> According to the JMX spec there should be 2 attributes: 'attribute'
>> and 'Attribute'
>> However, there is only one attribute resolved by the JavaBeans
>> Introspector and it is 'attribute'. Furthermore, the 'getattribute'
>> method is chosen as the getter method, rather counter-intuitively.
> The JMX monitor API specifies that it works like
> Introspector.getBeanInfo when it can't extract the value by other means.
> Are there are other areas in JMX where Introspector is used?

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.

-JB-

>
> -Alan



More information about the serviceability-dev mailing list