Mercurial > hg > release > icedtea7-forest-2.2 > jdk
changeset 5340:1bb3a6125387
8008611: Better handling of annotations in JMX
Reviewed-by: skoivu, dholmes, jfdenise
author | egahlin |
---|---|
date | Thu, 21 Mar 2013 13:56:28 +0100 |
parents | 2a2d96405f73 |
children | 98ce5da895f7 |
files | src/share/classes/com/sun/jmx/mbeanserver/Introspector.java |
diffstat | 1 files changed, 7 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/com/sun/jmx/mbeanserver/Introspector.java Thu Mar 14 14:45:55 2013 +0100 +++ b/src/share/classes/com/sun/jmx/mbeanserver/Introspector.java Thu Mar 21 13:56:28 2013 +0100 @@ -375,13 +375,19 @@ for (Annotation a : annots) { Class<? extends Annotation> c = a.annotationType(); Method[] elements = c.getMethods(); + boolean packageAccess = false; for (Method element : elements) { DescriptorKey key = element.getAnnotation(DescriptorKey.class); if (key != null) { String name = key.value(); Object value; try { - value = element.invoke(a); + // Avoid checking access more than once per annotation + if (!packageAccess) { + ReflectUtil.checkPackageAccess(c); + packageAccess = true; + } + value = MethodUtil.invoke(element, a, null); } catch (RuntimeException e) { // we don't expect this - except for possibly // security exceptions?