On 18.6.2015 18:47, Daniel Fuchs wrote:
Hi Jaroslav,

I haven't looked at the code, but if I understand well,
that would be a spec change.

Attribute names are case sensitive in JMX.

getFoo() =>  attribute named "Foo"
getfoo() =>  attribute named "foo"

Are you proposing to change that?

In this case it is an even bigger mess. This would work as long as you don't go through the JavaBeans introspector. The property descriptor generated for the "getFoo" method will be named "foo" and it is indistinguishable from "getfoo". Therefore, when you are trying to reach this attribute as "Foo" the JavaBeans introspector will not resolve the getter name. The SimpleIntrospector, on the other hand, will.

I am proposing to change the SimpleIntrospector so it behaves exactly as the JavaBeans introspector. But it seems that even that might be considered a specification change :/

-JB-


best regards,

-- daniel

On 18/06/15 18:39, Jaroslav Bachorik wrote:
Please, review the following change

Issue : https://bugs.openjdk.java.net/browse/JDK-8129215
Webrev: http://cr.openjdk.java.net/~jbachorik/8129215/webrev.00

The JMX Introspector will try to use the JavaBeans introspector whenever
possible, delegating the requests for the property getter/setter
methods. However, when the JavaBeans introspector is not available
(modules) the JMX Introspector falls back to its own simple, reflection
based, algorithm.

The simple algorithm does not enforce the rule of property names
starting with a lower-case letter. This might lead to situations when
the simple introspector provides the getter method for an attribute the
JavaBeans introspector would not (eg. 'Attribute' attribute)

This patch changes the simple introspector behaviour to conform to the
one of the JavaBeans introspector. Also, it makes the simple
introspector called only when the JavaBeans introspector is not
available - and not when the JavaBeans introspector fails to resolve a
property getter.

Thanks,

-JB-


Reply via email to