[PING] Re: RFR 8129215: com.sun.jmx.mbeanserver.Introspector may provide results inconsistent with the JavaBeans Introspector
Jaroslav Bachorik
jaroslav.bachorik at oracle.com
Fri Jul 31 11:56:53 UTC 2015
On 19.6.2015 18:20, Jaroslav Bachorik wrote:
> 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 ;-)
>
> Also, some JCK tests are relying on the Attribute properties being
> treated as JavaBean properties. These were, in fact, the ones triggering
> this issue when run without j.b.Introspector being available.
>
> So, if I understand it correctly, with my fix the implementation will be
> in agreement with the spec again even when j.b.Introspector is not
> available.
Could we get this wrapped, please?
The change is not introducing any new behaviour - it just makes the
SimpleIntrospector (being used when j.b.Introspector is not available)
to behave accordingly to the spec.
-JB-
>
> -JB-
>
>>
>> cheers,
>>
>> -- 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