jmx-dev RFR: 8010285 Enforce the requirement of Management Interfaces being public
David Holmes
david.holmes at oracle.com
Wed May 29 01:09:38 PDT 2013
Hi Jaroslav,
Just wondering why this needs to be public:
+ public static void testComplianceMBeanInterface(Class<?>
interfaceClass)
+ throws NotCompliantMBeanException{
+
StandardMBeanIntrospector.getInstance().getAnalyzer(interfaceClass);
+ }
Same question goes for the existing testComplianceMXBeanInterface. These
are public methods on public classes but have no specification written
for them. ???
David
On 29/05/2013 5:32 AM, Jaroslav Bachorik wrote:
> And the webrev would come handy, of course.
>
> http://cr.openjdk.java.net/~jbachorik/8010285/webrev.00/
>
> -JB-
>
> On 05/28/2013 04:22 PM, Jaroslav Bachorik wrote:
>> The fix enforces the management interfaces (read MBean and MXBean
>> interfaces) being public. While this is defined in the specification it
>> was not enforced in any way and it was allowed to create MBeans for eg.
>> private MBean interfaces.
>>
>> The fix adds checks when creating and registering MBeans and throws
>> javax.management.NotCompliantMBeanException when a user tries to create
>> an MBean with non-public management interface.
>>
>> Since this change can cause problems for users having non-public
>> management interfaces a system property is introduced that will revert
>> to the old behaviour when set (com.sun.jmx.mbeans.allowNonPublic).
>>
>> Thanks,
>>
>> -JB-
>>
>
More information about the serviceability-dev
mailing list